diff --git a/Assets/Resources/Games/fillbots.prefab b/Assets/Resources/Games/fillbots.prefab
index 4c0fd34ec..b6689ba11 100644
--- a/Assets/Resources/Games/fillbots.prefab
+++ b/Assets/Resources/Games/fillbots.prefab
@@ -981,7 +981,7 @@ SpriteRenderer:
m_SortingLayer: 0
m_SortingOrder: 3
m_Sprite: {fileID: 21300000, guid: 0f6862a559f12a84488f618e606bec2e, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 0.5411765}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.41960785}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
@@ -1191,7 +1191,6 @@ Transform:
- {fileID: 1588626132168789274}
- {fileID: 5118038246686077097}
- {fileID: 1945548446059564651}
- - {fileID: 7115372295053300498}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1233,6 +1232,21 @@ MonoBehaviour:
impactMaterial: {fileID: 2100000, guid: ab21c8af63622c646a685aa8b7c3c9a4, type: 2}
conveyerBelt: {fileID: 9075535989594452730}
blackout: {fileID: 3757292687665858054}
+ fillerRenderer:
+ - {fileID: 5394476682869087445}
+ - {fileID: 8336940640779813026}
+ - {fileID: 3164996977270515796}
+ - {fileID: 7828360752312686874}
+ otherRenderer:
+ - {fileID: 5193366646839469736}
+ - {fileID: 5660383285804467032}
+ - {fileID: 8778064963795826291}
+ - {fileID: 7995760259006827823}
+ - {fileID: 7154959971140400697}
+ - {fileID: 727036483507506023}
+ - {fileID: 68801378834844227}
+ - {fileID: 20845509605144322}
+ BGPlane: {fileID: 4596246901150042945}
--- !u!1 &7022196375650281210
GameObject:
m_ObjectHideFlags: 0
@@ -1803,7 +1817,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.x
- value: -3.87
+ value: -3.84
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.y
@@ -1862,6 +1876,11 @@ SpriteRenderer:
m_CorrespondingSourceObject: {fileID: 670297123598137949, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
m_PrefabInstance: {fileID: 1298767332955391950}
m_PrefabAsset: {fileID: 0}
+--- !u!212 &5660383285804467032 stripped
+SpriteRenderer:
+ m_CorrespondingSourceObject: {fileID: 6668598056782333078, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
+ m_PrefabInstance: {fileID: 1298767332955391950}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &1484241650340684350
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1875,7 +1894,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.x
- value: -5.1
+ value: -5.07
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.y
@@ -1934,6 +1953,11 @@ SpriteRenderer:
m_CorrespondingSourceObject: {fileID: 670297123598137949, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
m_PrefabInstance: {fileID: 1484241650340684350}
m_PrefabAsset: {fileID: 0}
+--- !u!212 &5193366646839469736 stripped
+SpriteRenderer:
+ m_CorrespondingSourceObject: {fileID: 6668598056782333078, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
+ m_PrefabInstance: {fileID: 1484241650340684350}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &2691583618534683365
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1947,7 +1971,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.x
- value: -2.65
+ value: -2.62
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.y
@@ -2006,6 +2030,11 @@ Animator:
m_CorrespondingSourceObject: {fileID: 1889225549270412632, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
m_PrefabInstance: {fileID: 2691583618534683365}
m_PrefabAsset: {fileID: 0}
+--- !u!212 &8778064963795826291 stripped
+SpriteRenderer:
+ m_CorrespondingSourceObject: {fileID: 6668598056782333078, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
+ m_PrefabInstance: {fileID: 2691583618534683365}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &3638129006627686841
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2019,7 +2048,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.x
- value: 2.55
+ value: 2.58
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.y
@@ -2078,6 +2107,11 @@ SpriteRenderer:
m_CorrespondingSourceObject: {fileID: 670297123598137949, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
m_PrefabInstance: {fileID: 3638129006627686841}
m_PrefabAsset: {fileID: 0}
+--- !u!212 &7995760259006827823 stripped
+SpriteRenderer:
+ m_CorrespondingSourceObject: {fileID: 6668598056782333078, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
+ m_PrefabInstance: {fileID: 3638129006627686841}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &4593698792861692591
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2091,7 +2125,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.x
- value: 3.82
+ value: 3.85
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.y
@@ -2150,67 +2184,10 @@ SpriteRenderer:
m_CorrespondingSourceObject: {fileID: 670297123598137949, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
m_PrefabInstance: {fileID: 4593698792861692591}
m_PrefabAsset: {fileID: 0}
---- !u!1001 &5998474256261010265
-PrefabInstance:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- m_TransformParent: {fileID: 5681901217470064799}
- m_Modifications:
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_RootOrder
- value: 3
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalPosition.y
- value: -4.52
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7038732336128464859, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- propertyPath: m_Name
- value: BotSmall
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
---- !u!4 &7115372295053300498 stripped
-Transform:
- m_CorrespondingSourceObject: {fileID: 3566918977115226187, guid: 8041c7a98068d5c438ea1d3814c5fe8c, type: 3}
- m_PrefabInstance: {fileID: 5998474256261010265}
+--- !u!212 &7154959971140400697 stripped
+SpriteRenderer:
+ m_CorrespondingSourceObject: {fileID: 6668598056782333078, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
+ m_PrefabInstance: {fileID: 4593698792861692591}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &6241264839279890417
PrefabInstance:
@@ -2225,7 +2202,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.x
- value: 5.1
+ value: 5.13
objectReference: {fileID: 0}
- target: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
propertyPath: m_LocalPosition.y
@@ -2269,6 +2246,11 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
+--- !u!212 &727036483507506023 stripped
+SpriteRenderer:
+ m_CorrespondingSourceObject: {fileID: 6668598056782333078, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
+ m_PrefabInstance: {fileID: 6241264839279890417}
+ m_PrefabAsset: {fileID: 0}
--- !u!4 &5170411475464246758 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1251315264588323351, guid: 672acf3ada15b4b44a8d1580bad1900c, type: 3}
diff --git a/Assets/Resources/Prefabs/Games/Fillbots/BotSmall.prefab b/Assets/Resources/Prefabs/Games/Fillbots/BotSmall.prefab
index 3a0771667..97be4262a 100644
--- a/Assets/Resources/Prefabs/Games/Fillbots/BotSmall.prefab
+++ b/Assets/Resources/Prefabs/Games/Fillbots/BotSmall.prefab
@@ -26,7 +26,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 630223578108791356}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0.78, z: 0}
+ m_LocalPosition: {x: 0, y: 0.79, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -133,7 +133,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1038822625059552157}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 1.66, z: 0}
+ m_LocalPosition: {x: 0, y: 1.67, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -914,7 +914,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7716400162364290482}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0.68, z: 0}
+ m_LocalPosition: {x: 0, y: 0.67, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -998,7 +998,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7983486945364815282}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 1.25, z: 0}
+ m_LocalPosition: {x: 0, y: 1.24, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
diff --git a/Assets/Resources/Sfx/games/fillbots/armRetraction2.wav b/Assets/Resources/Sfx/games/fillbots/armRetractionPop.wav
similarity index 100%
rename from Assets/Resources/Sfx/games/fillbots/armRetraction2.wav
rename to Assets/Resources/Sfx/games/fillbots/armRetractionPop.wav
diff --git a/Assets/Resources/Sfx/games/fillbots/armRetraction2.wav.meta b/Assets/Resources/Sfx/games/fillbots/armRetractionPop.wav.meta
similarity index 100%
rename from Assets/Resources/Sfx/games/fillbots/armRetraction2.wav.meta
rename to Assets/Resources/Sfx/games/fillbots/armRetractionPop.wav.meta
diff --git a/Assets/Resources/Sprites/Games/Fillbots/Animations/Small/Success.anim b/Assets/Resources/Sprites/Games/Fillbots/Animations/Small/Success.anim
index 3d5dc9a4f..c3a6e8b94 100644
--- a/Assets/Resources/Sprites/Games/Fillbots/Animations/Small/Success.anim
+++ b/Assets/Resources/Sprites/Games/Fillbots/Animations/Small/Success.anim
@@ -15,7 +15,41 @@ AnimationClip:
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
- m_ScaleCurves: []
+ m_ScaleCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 1, y: 1, z: 1}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ 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.33333334
+ value: {x: 1, y: 1, z: 1}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ 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.41666666
+ value: {x: -1, y: 1, z: 1}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ 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:
m_FloatCurves:
- curve:
serializedVersion: 2
@@ -44,6 +78,14 @@ AnimationClip:
value: {fileID: -1887099881, guid: 4b169e5816c948044a7180609226f690, type: 3}
- time: 0.16666667
value: {fileID: 1609464891, guid: 4b169e5816c948044a7180609226f690, type: 3}
+ - time: 0.25
+ value: {fileID: -1887099881, guid: 4b169e5816c948044a7180609226f690, type: 3}
+ - time: 0.33333334
+ value: {fileID: -262485002, guid: 4b169e5816c948044a7180609226f690, type: 3}
+ - time: 0.41666666
+ value: {fileID: -1887099881, guid: 4b169e5816c948044a7180609226f690, type: 3}
+ - time: 0.5
+ value: {fileID: 1609464891, guid: 4b169e5816c948044a7180609226f690, type: 3}
attribute: m_Sprite
path:
classID: 212
@@ -55,6 +97,13 @@ AnimationClip:
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 3
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
- serializedVersion: 2
path: 3747441678
attribute: 2086281974
@@ -73,12 +122,16 @@ AnimationClip:
- {fileID: -262485002, guid: 4b169e5816c948044a7180609226f690, type: 3}
- {fileID: -1887099881, guid: 4b169e5816c948044a7180609226f690, type: 3}
- {fileID: 1609464891, guid: 4b169e5816c948044a7180609226f690, type: 3}
+ - {fileID: -1887099881, guid: 4b169e5816c948044a7180609226f690, type: 3}
+ - {fileID: -262485002, guid: 4b169e5816c948044a7180609226f690, type: 3}
+ - {fileID: -1887099881, guid: 4b169e5816c948044a7180609226f690, type: 3}
+ - {fileID: 1609464891, guid: 4b169e5816c948044a7180609226f690, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
- m_StopTime: 0.18333334
+ m_StopTime: 0.51666665
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
@@ -113,6 +166,117 @@ AnimationClip:
path: Mask
classID: 1
script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.33333334
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: -1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalScale.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.33333334
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalScale.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.33333334
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.41666666
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalScale.z
+ path:
+ classID: 4
+ script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
diff --git a/Assets/Resources/Sprites/Games/Fillbots/Fillbots_main.png.meta b/Assets/Resources/Sprites/Games/Fillbots/Fillbots_main.png.meta
index 7b427aa53..371182602 100644
--- a/Assets/Resources/Sprites/Games/Fillbots/Fillbots_main.png.meta
+++ b/Assets/Resources/Sprites/Games/Fillbots/Fillbots_main.png.meta
@@ -1394,7 +1394,7 @@ TextureImporter:
width: 208
height: 228
alignment: 9
- pivot: {x: 0.5, y: 0.07017544}
+ pivot: {x: 0.5, y: 0.065789476}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
@@ -1415,7 +1415,7 @@ TextureImporter:
width: 208
height: 228
alignment: 9
- pivot: {x: 0.5, y: 0.07017544}
+ pivot: {x: 0.5, y: 0.065789476}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
@@ -1436,7 +1436,7 @@ TextureImporter:
width: 208
height: 262
alignment: 9
- pivot: {x: 0.5, y: 0.07017544}
+ pivot: {x: 0.5769231, y: 0.06870229}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
@@ -1457,7 +1457,7 @@ TextureImporter:
width: 208
height: 262
alignment: 9
- pivot: {x: 0.5, y: 0.07017544}
+ pivot: {x: 0.53846157, y: 0.06870229}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
@@ -1688,7 +1688,7 @@ TextureImporter:
width: 208
height: 228
alignment: 9
- pivot: {x: 0.5, y: 0.07017544}
+ pivot: {x: 0.5, y: 0.065789476}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
@@ -1982,7 +1982,7 @@ TextureImporter:
width: 336
height: 336
alignment: 0
- pivot: {x: 0, y: 0}
+ pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
@@ -2005,6 +2005,7 @@ TextureImporter:
weights: []
secondaryTextures: []
nameFileIdTable:
+ Fillbots_main_0: 1077949263
Fillbots_main_1: -1329567388
Fillbots_main_104: 44479687
Fillbots_main_105: 43587656
diff --git a/Assets/Scripts/Games/Fillbots/Fillbots.cs b/Assets/Scripts/Games/Fillbots/Fillbots.cs
index bc21511f7..36a6c2bab 100644
--- a/Assets/Scripts/Games/Fillbots/Fillbots.cs
+++ b/Assets/Scripts/Games/Fillbots/Fillbots.cs
@@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HeavenStudio.Util;
+using Jukebox;
namespace HeavenStudio.Games.Loaders
{
@@ -10,6 +11,25 @@ namespace HeavenStudio.Games.Loaders
{
public static Minigame AddGame(EventCaller eventCaller)
{
+ var botParams = new List()
+ {
+ new Param("alt", false, "Alternate OK"),
+ new Param("type", Scripts_Fillbots.EndAnim.Both, "Success Reaction", "Set the reaction of the Robot."),
+ new Param("stop", false, "Stop Conveyer", "Toggle if the conveyer should be stopped when finished."),
+ new Param("color", false, "Custom Color", "Toggle if the robot color should be changed.", new List()
+ {
+ new Param.CollapseParam((x, _) => (bool)x, new string[] { "colorFuel", "colorLampOff", "colorLampOn" }),
+ }),
+ new Param("colorFuel", new Color(1f, 0.385f, 0.385f), "Fuel Color", "Set the color of the fuel."),
+ new Param("colorLampOff", new Color(0.635f, 0.635f, 0.185f), "Off Lamp Color", "Set the color of the off lamp."),
+ new Param("colorLampOn", new Color(1f, 1f, 0.42f), "On Lamp Color", "Set the color of the on lamp."),
+ };
+
+ var customBotParams = new List(botParams);
+ customBotParams.Insert(0,
+ new Param("size", Scripts_Fillbots.BotSize.Medium, "Size", "Set the size of the Robot.")
+ );
+
return new Minigame("fillbots", "Fillbots", "FFFFFF", false, false, new List()
{
new("bop", "Bop")
@@ -30,89 +50,97 @@ namespace HeavenStudio.Games.Loaders
{
preFunction = delegate {
var e = eventCaller.currentEntity;
- Fillbots.PreSpawnFillbot(e.beat, 3, (int)Scripts_Fillbots.BotSize.Medium, e["colorFuel"], e["colorLampOff"], e["colorLampOn"], e["type"], e["alt"]);
+ Fillbots.PreSpawnFillbot(e.beat, 3, (int)Scripts_Fillbots.BotSize.Medium, e["colorFuel"], e["colorLampOff"], e["colorLampOn"], e["type"], e["alt"], e["stop"], e["color"]);
},
defaultLength = 8f,
- parameters = new List()
- {
- new Param("alt", false, "Alternate OK"),
- new Param("type", Scripts_Fillbots.EndAnim.Both, "Success Reaction", "Set the reaction of the Robot."),
- new Param("colorFuel", new Color(1f, 0.385f, 0.385f), "Fuel Color", "Set the color of the fuel."),
- new Param("colorLampOff", new Color(0.635f, 0.635f, 0.185f), "Off Lamp Color", "Set the color of the off lamp."),
- new Param("colorLampOn", new Color(1f, 1f, 0.42f), "On Lamp Color", "Set the color of the on lamp."),
- },
+ parameters = botParams,
},
new GameAction("large", "Large Bot")
{
preFunction = delegate {
var e = eventCaller.currentEntity;
- Fillbots.PreSpawnFillbot(e.beat, 7, (int)Scripts_Fillbots.BotSize.Large, e["colorFuel"], e["colorLampOff"], e["colorLampOn"], e["type"], e["alt"]);
+ Fillbots.PreSpawnFillbot(e.beat, 7, (int)Scripts_Fillbots.BotSize.Large, e["colorFuel"], e["colorLampOff"], e["colorLampOn"], e["type"], e["alt"], e["stop"], e["color"]);
},
defaultLength = 12f,
- parameters = new List()
- {
- new Param("alt", false, "Alternate OK"),
- new Param("type", Scripts_Fillbots.EndAnim.Both, "Success Reaction", "Set the reaction of the Robot."),
- new Param("colorFuel", new Color(1f, 0.385f, 0.385f), "Fuel Color", "Set the color of the fuel."),
- new Param("colorLampOff", new Color(0.635f, 0.635f, 0.185f), "Off Lamp Color", "Set the color of the off lamp."),
- new Param("colorLampOn", new Color(1f, 1f, 0.42f), "On Lamp Color", "Set the color of the on lamp."),
- },
+ parameters = botParams,
},
new GameAction("small", "Small Bot")
{
preFunction = delegate {
var e = eventCaller.currentEntity;
- Fillbots.PreSpawnFillbot(e.beat, 1, (int)Scripts_Fillbots.BotSize.Small, e["colorFuel"], e["colorLampOff"], e["colorLampOn"], e["type"], e["alt"]);
+ Fillbots.PreSpawnFillbot(e.beat, 1, (int)Scripts_Fillbots.BotSize.Small, e["colorFuel"], e["colorLampOff"], e["colorLampOn"], e["type"], e["alt"], e["stop"], e["color"]);
},
defaultLength = 6f,
- parameters = new List()
- {
- new Param("alt", false, "Alternate OK"),
- new Param("type", Scripts_Fillbots.EndAnim.Both, "Success Reaction", "Set the reaction of the Robot."),
- new Param("colorFuel", new Color(1f, 0.385f, 0.385f), "Fuel Color", "Set the color of the fuel."),
- new Param("colorLampOff", new Color(0.635f, 0.635f, 0.185f), "Off Lamp Color", "Set the color of the off lamp."),
- new Param("colorLampOn", new Color(1f, 1f, 0.42f), "On Lamp Color", "Set the color of the on lamp."),
- },
+ parameters = botParams,
},
new GameAction("custom", "Custom Bot")
{
preFunction = delegate {
var e = eventCaller.currentEntity;
- Fillbots.PreSpawnFillbot(e.beat, e.length-5, e["size"], e["colorFuel"], e["colorLampOff"], e["colorLampOn"], e["type"], e["alt"]);
+ Fillbots.PreSpawnFillbot(e.beat, e.length-5, e["size"], e["colorFuel"], e["colorLampOff"], e["colorLampOn"], e["type"], e["alt"], e["stop"], e["color"]);
},
defaultLength = 6f,
resizable = true,
- parameters = new List()
- {
- new Param("size", Scripts_Fillbots.BotSize.Medium, "Size", "Set the size of the Robot."),
- new Param("alt", false, "Alternate OK"),
- new Param("type", Scripts_Fillbots.EndAnim.Both, "Success Reaction", "Set the reaction of the Robot."),
- new Param("colorFuel", new Color(1f, 0.385f, 0.385f), "Fuel Color", "Set the color of the fuel."),
- new Param("colorLampOff", new Color(0.635f, 0.635f, 0.185f), "Off Lamp Color", "Set the color of the off lamp."),
- new Param("colorLampOn", new Color(1f, 1f, 0.42f), "On Lamp Color", "Set the color of the on lamp."),
- },
+ parameters = customBotParams,
},
new GameAction("blackout", "Blackout")
{
function = delegate { Fillbots.instance.Blackout();},
defaultLength = 0.5f,
},
- new GameAction("background", "Background Appearance")
+ new GameAction("background appearance", "Background Appearance")
{
function = delegate {
var e = eventCaller.currentEntity;
- Fillbots.instance.BackgroundColorSet(e["colorImpact"], e["colorMeter1"], e["colorMeter2"], e["colorMeter3"], e["colorMeter4"], e["colorMeter5"], e["colorMeter6"]);
+ Fillbots.instance.BackgroundColorSet(e.beat, e.length, e["colorBGStart"], e["colorBGEnd"],
+ e["colorMetersStart"], e["colorMeter1Start"], e["colorMeter2Start"], e["colorMeter3Start"], e["colorMeter4Start"], e["colorMeter5Start"], e["colorMeter6Start"],
+ e["colorMetersEnd"], e["colorMeter1End"], e["colorMeter2End"], e["colorMeter3End"], e["colorMeter4End"], e["colorMeter5End"], e["colorMeter6End"],
+ e["separate"], e["ease"]);
+ },
+ defaultLength = 0.5f,
+ resizable = true,
+ parameters = new List()
+ {
+ new Param("colorBGStart", Color.white, "Start BG Color", "Set the color at the start of the event."),
+ new Param("colorBGEnd", Color.white, "End BG Color", "Set the color at the end of the event."),
+ new Param("ease", Util.EasingFunction.Ease.Instant, "Ease", "Set the easing of the action."),
+ new Param("separate", false, "Separate Meter Color", "Toggle if the robot color should be changed.", new List()
+ {
+ new Param.CollapseParam((x, _) => !(bool)x, new string[] { "colorMetersStart", "colorMetersEnd" }),
+ new Param.CollapseParam((x, _) => (bool)x, new string[] { "colorMeter1Start", "colorMeter2Start", "colorMeter3Start", "colorMeter4Start", "colorMeter5Start", "colorMeter6Start",
+ "colorMeter1End", "colorMeter2End", "colorMeter3End", "colorMeter4End", "colorMeter5End", "colorMeter6End" }),
+ }),
+ new Param("colorMetersStart", new Color(1f, 0.88f, 0.88f), "Start Meter Color", "Set the color at the start of the event."),
+ new Param("colorMetersEnd", new Color(1f, 0.88f, 0.88f), "End Meter Color", "Set the color at the end of the event."),
+ new Param("colorMeter1Start", new Color(1f, 0.88f, 0.88f), "Start 1st Meter Color", "Set the color at the start of the event."),
+ new Param("colorMeter1End", new Color(1f, 0.88f, 0.88f), "End 1st Meter Color", "Set the color at the end of the event."),
+ new Param("colorMeter2Start", new Color(1f, 0.88f, 0.88f), "Start 2nd Meter Color", "Set the color at the start of the event."),
+ new Param("colorMeter2End", new Color(1f, 0.88f, 0.88f), "End 2nd Meter Color", "Set the color at the end of the event."),
+ new Param("colorMeter3Start", new Color(1f, 0.88f, 0.88f), "Start 3rd Meter Color", "Set the color at the start of the event."),
+ new Param("colorMeter3End", new Color(1f, 0.88f, 0.88f), "End 3rd Meter Color", "Set the color at the end of the event."),
+ new Param("colorMeter4Start", new Color(1f, 0.88f, 0.88f), "Start 4th Meter Color", "Set the color at the start of the event."),
+ new Param("colorMeter4End", new Color(1f, 0.88f, 0.88f), "End 4th Meter Color", "Set the color at the end of the event."),
+ new Param("colorMeter5Start", new Color(1f, 0.88f, 0.88f), "Start 5th Meter Color", "Set the color at the start of the event."),
+ new Param("colorMeter5End", new Color(1f, 0.88f, 0.88f), "End 5th Meter Color", "Set the color at the end of the event."),
+ new Param("colorMeter6Start", new Color(1f, 0.88f, 0.88f), "Start 6th Meter Color", "Set the color at the start of the event."),
+ new Param("colorMeter6End", new Color(1f, 0.88f, 0.88f), "End 6th Meter Color", "Set the color at the end of the event."),
+ }
+ },
+ new GameAction("object appearance", "Object Appearance")
+ {
+ function = delegate {
+ var e = eventCaller.currentEntity;
+ Fillbots.instance.ObjectColorSet(e["colorFuel"], e["colorLampOff"], e["colorLampOn"], e["colorImpact"], e["colorFiller"], e["colorConveyer"]);
},
defaultLength = 0.5f,
parameters = new List()
{
+ new Param("colorFuel", new Color(1f, 0.385f, 0.385f), "Fuel Color", "Set the color of the fuel."),
+ new Param("colorLampOff", new Color(0.635f, 0.635f, 0.185f), "Off Lamp Color", "Set the color of the off lamp."),
+ new Param("colorLampOn", new Color(1f, 1f, 0.42f), "On Lamp Color", "Set the color of the on lamp."),
new Param("colorImpact", new Color(1f, 0.59f, 0.01f), "Impact Color", "Set the color of the impact."),
- new Param("colorMeter1", new Color(1f, 0.88f, 0.88f), "1st Meter Color", "Set the color of the fuel in the meter."),
- new Param("colorMeter2", new Color(1f, 0.88f, 0.88f), "2nd Meter Color", "Set the color of the fuel in the meter."),
- new Param("colorMeter3", new Color(1f, 0.88f, 0.88f), "3rd Meter Color", "Set the color of the fuel in the meter."),
- new Param("colorMeter4", new Color(1f, 0.88f, 0.88f), "4th Meter Color", "Set the color of the fuel in the meter."),
- new Param("colorMeter5", new Color(1f, 0.88f, 0.88f), "5th Meter Color", "Set the color of the fuel in the meter."),
- new Param("colorMeter6", new Color(1f, 0.88f, 0.88f), "6th Meter Color", "Set the color of the fuel in the meter."),
+ new Param("colorFiller", Color.white, "Filler Color", "Set the color of the filler."),
+ new Param("colorConveyer", Color.white, "Conveyer Color", "Set the color of the conveyer."),
}
},
},
@@ -142,6 +170,8 @@ namespace HeavenStudio.Games
public Color lampColorOn;
public EndAnim endAnim;
public bool altOK;
+ public bool stop;
+ public bool color;
}
private static List queuedBots = new List();
@@ -150,12 +180,16 @@ namespace HeavenStudio.Games
[SerializeField] private NtrFillbot mediumBot;
[SerializeField] private NtrFillbot largeBot;
public Animator filler;
+ [System.NonSerialized] public bool fillerHolding;
[SerializeField] private Transform[] gears;
[SerializeField] private Animator[] meters;
[SerializeField] private SpriteRenderer[] metersFuel;
[SerializeField] private Material impactMaterial;
[SerializeField] private Animator conveyerBelt;
[SerializeField] private GameObject blackout;
+ [SerializeField] private SpriteRenderer[] fillerRenderer;
+ [SerializeField] private SpriteRenderer[] otherRenderer;
+ [SerializeField] private SpriteRenderer BGPlane;
[System.NonSerialized] public BotSize fillerPosition = BotSize.Medium;
@@ -165,7 +199,11 @@ namespace HeavenStudio.Games
[NonSerialized] public float conveyerNormalizedOffset;
+ private ColorEase[] colorEases = new ColorEase[7];
private int toggleGlobal = 0;
+ private Color fuelColorGlobal = new Color(1f, 0.385f, 0.385f),
+ lampColorOffGlobal = new Color(0.635f, 0.635f, 0.185f),
+ lampColorOnGlobal = new Color(1f, 1f, 0.42f);
public static Fillbots instance;
@@ -173,6 +211,16 @@ namespace HeavenStudio.Games
{
instance = this;
SetupBopRegion("fillbots", "bop", "auto");
+
+ colorEases = new ColorEase[] {
+ new(Color.white),
+ new(new Color(1f, 0.88f, 0.88f)),
+ new(new Color(1f, 0.88f, 0.88f)),
+ new(new Color(1f, 0.88f, 0.88f)),
+ new(new Color(1f, 0.88f, 0.88f)),
+ new(new Color(1f, 0.88f, 0.88f)),
+ new(new Color(1f, 0.88f, 0.88f)),
+ };
}
public override void OnBeatPulse(double beat)
@@ -183,6 +231,15 @@ namespace HeavenStudio.Games
}
}
+ public override void OnPlay(double beat)
+ {
+ if (queuedBots.Count > 0) queuedBots.Clear();
+ foreach (var evt in scheduledInputs)
+ {
+ evt.Disable();
+ }
+ }
+
private void OnDestroy()
{
if (queuedBots.Count > 0) queuedBots.Clear();
@@ -192,6 +249,34 @@ namespace HeavenStudio.Games
}
}
+ public override void OnStop(double beat) => EntityPreCheck(beat);
+ void EntityPreCheck(double beat)
+ {
+ if (gameManager == null) return;
+ List prevEntities = gameManager.Beatmap.Entities.FindAll(c => c.datamodel.Split(0) == "fillbots");
+
+ // init colors
+ RiqEntity bg = prevEntities.FindLast(c => c.beat <= beat && c.datamodel == "fillbots/background appearance");
+ RiqEntity obj = prevEntities.FindLast(c => c.beat <= beat && c.datamodel == "fillbots/object appearance");
+
+ if (bg != null)
+ {
+ BackgroundColorSet(bg.beat, bg.length, bg["colorBGStart"], bg["colorBGEnd"],
+ bg["colorMetersStart"], bg["colorMeter1Start"], bg["colorMeter2Start"], bg["colorMeter3Start"], bg["colorMeter4Start"], bg["colorMeter5Start"], bg["colorMeter6Start"],
+ bg["colorMetersEnd"], bg["colorMeter1End"], bg["colorMeter2End"], bg["colorMeter3End"], bg["colorMeter4End"], bg["colorMeter5End"], bg["colorMeter6End"],
+ bg["separate"], bg["ease"]);
+ }
+
+ if (obj != null)
+ {
+ ObjectColorSet(obj["colorFuel"], obj["colorLampOff"], obj["colorLampOn"], obj["colorImpact"], obj["colorFiller"], obj["colorConveyer"]);
+ }
+ else
+ {
+ ObjectColorSet(new Color(1f, 0.385f, 0.385f), new Color(0.635f, 0.635f, 0.185f), new Color(1f, 1f, 0.42f), new Color(1f, 0.59f, 0.01f), Color.white, Color.white);
+ }
+ }
+
private void Update()
{
var cond = Conductor.instance;
@@ -201,7 +286,7 @@ namespace HeavenStudio.Games
{
foreach (var queuedBot in queuedBots)
{
- SpawnFillbot(queuedBot.beat, queuedBot.holdLength, queuedBot.size, queuedBot.fuelColor, queuedBot.lampColorOff, queuedBot.lampColorOn, queuedBot.endAnim, queuedBot.altOK);
+ SpawnFillbot(queuedBot.beat, queuedBot.holdLength, queuedBot.size, queuedBot.fuelColor, queuedBot.lampColorOff, queuedBot.lampColorOn, queuedBot.endAnim, queuedBot.altOK, queuedBot.stop, queuedBot.color);
}
queuedBots.Clear();
}
@@ -228,17 +313,19 @@ namespace HeavenStudio.Games
};
filler.DoScaledAnimationAsync("ReleaseWhiff" + sizeSuffix, 0.5f);
SoundByte.PlayOneShotGame("fillbots/armRetractionWhiff");
+ if (fillerHolding) SoundByte.PlayOneShotGame("fillbots/armRetractionPop");
}
UpdateConveyerBelt(conveyerStartBeat, conveyerNormalizedOffset);
+ UpdateBackgroundColor();
}
}
- public static void PreSpawnFillbot(double beat, double holdLength, int size, Color fuelColor, Color lampColorOff, Color lampColorOn, int endAnim, bool altOK)
+ public static void PreSpawnFillbot(double beat, double holdLength, int size, Color fuelColor, Color lampColorOff, Color lampColorOn, int endAnim, bool altOK, bool stop, bool color)
{
if (GameManager.instance.currentGame == "fillbots")
{
- instance.SpawnFillbot(beat, holdLength, (BotSize)size, fuelColor, lampColorOff, lampColorOn, (EndAnim)endAnim, altOK);
+ instance.SpawnFillbot(beat, holdLength, (BotSize)size, fuelColor, lampColorOff, lampColorOn, (EndAnim)endAnim, altOK, stop, color);
}
else
{
@@ -252,11 +339,13 @@ namespace HeavenStudio.Games
lampColorOn = lampColorOn,
endAnim = (EndAnim)endAnim,
altOK = altOK,
+ stop = stop,
+ color = color,
});
}
}
- private void SpawnFillbot(double beat, double holdLength, BotSize size, Color fuelColor, Color lampColorOff, Color lampColorOn, EndAnim endAnim, bool altOK)
+ private void SpawnFillbot(double beat, double holdLength, BotSize size, Color fuelColor, Color lampColorOff, Color lampColorOn, EndAnim endAnim, bool altOK, bool stop, bool color)
{
NtrFillbot Bot = size switch
{
@@ -266,15 +355,11 @@ namespace HeavenStudio.Games
_ => throw new System.NotImplementedException()
};
NtrFillbot spawnedBot = Instantiate(Bot, transform);
- if (holdLength > 0)
- {
- spawnedBot.holdLength = holdLength;
- }
+
+ if (holdLength > 0) spawnedBot.holdLength = holdLength;
+ if (stop) spawnedBot.conveyerRestartLength = -1;
spawnedBot.startBeat = beat;
- spawnedBot.fuelColor = fuelColor;
- spawnedBot.lampColorOff = lampColorOff;
- spawnedBot.lampColorOn = lampColorOn;
spawnedBot.endAnim = endAnim;
spawnedBot.altOK = altOK;
@@ -282,13 +367,7 @@ namespace HeavenStudio.Games
var actions = new List();
var fallingBots = currentBots.FindAll(x => x.startBeat < beat && x.startBeat + 3 >= beat);
- if (fallingBots is null) {
- actions.Add(new BeatAction.Action(beat - 0.5, delegate
- {
- if (conveyerStartBeat != -1) conveyerNormalizedOffset = Conductor.instance.GetPositionFromBeat(conveyerStartBeat, 1);
- conveyerStartBeat = -2;
- }));
- } else {
+ if (fallingBots.Count > 0) {
actions.Add(new BeatAction.Action(beat - 0.25, delegate
{
foreach (var bot in fallingBots)
@@ -302,11 +381,27 @@ namespace HeavenStudio.Games
if (conveyerStartBeat != -1) conveyerNormalizedOffset = Conductor.instance.GetPositionFromBeat(conveyerStartBeat, 1);
conveyerStartBeat = -2;
}));
+ } else {
+ actions.Add(new BeatAction.Action(beat - 0.5, delegate
+ {
+ if (conveyerStartBeat != -1) conveyerNormalizedOffset = Conductor.instance.GetPositionFromBeat(conveyerStartBeat, 1);
+ conveyerStartBeat = -2;
+ }));
}
+ actions.Add(new BeatAction.Action(beat, delegate
+ {
+ if (!color)
+ {
+ fuelColor = fuelColorGlobal;
+ lampColorOff = lampColorOffGlobal;
+ lampColorOn = lampColorOnGlobal;
+ }
+ spawnedBot.InitColor(fuelColor, lampColorOff, lampColorOn);
+ }));
actions.Add(new BeatAction.Action(beat + 3, delegate
{
- if (!PlayerInput.GetIsAction(InputAction_BasicPress)) filler.DoScaledAnimationAsync("FillerPrepare", 0.5f);
+ if (!PlayerInput.GetIsAction(InputAction_BasicPressing) && !fillerHolding) filler.DoScaledAnimationAsync("FillerPrepare", 0.5f);
conveyerStartBeat = beat + 3;
fillerPosition = size;
}));
@@ -341,6 +436,12 @@ namespace HeavenStudio.Games
}, 0.5f);
toggle ^= 1;
}
+
+ var danceBots = currentBots.FindAll(x => x.botState is BotState.Dance);
+ foreach (var bot in danceBots)
+ {
+ bot.SuccessDance();
+ }
}
private void UpdateConveyerBelt(double startBeat, float offset)
@@ -364,14 +465,74 @@ namespace HeavenStudio.Games
blackout.SetActive(!blackout.activeSelf);
}
- public void BackgroundColorSet(Color impact, Color meter1, Color meter2, Color meter3, Color meter4, Color meter5, Color meter6)
+ public void BackgroundColorSet(double beat, float length, Color BGStart, Color BGEnd,
+ Color metersStart, Color meter1Start, Color meter2Start, Color meter3Start, Color meter4Start, Color meter5Start, Color meter6Start,
+ Color metersEnd, Color meter1End, Color meter2End, Color meter3End, Color meter4End, Color meter5End, Color meter6End,
+ bool separate, int colorEaseSet)
{
- impactMaterial.SetColor("_ColorAlpha", impact);
+ colorEases = new ColorEase[] {
+ new(beat, length, BGStart, BGEnd, colorEaseSet),
+ new(beat, length, meter1Start, meter1End, colorEaseSet),
+ new(beat, length, meter2Start, meter2End, colorEaseSet),
+ new(beat, length, meter3Start, meter3End, colorEaseSet),
+ new(beat, length, meter4Start, meter4End, colorEaseSet),
+ new(beat, length, meter5Start, meter5End, colorEaseSet),
+ new(beat, length, meter6Start, meter6End, colorEaseSet),
+ };
+ if (!separate)
+ {
+ for (int i = 1; i < 7; i++)
+ {
+ colorEases[i] = new(beat, length, metersStart, metersEnd, colorEaseSet);
+ }
+ }
+
+ UpdateBackgroundColor();
+
+ // this.bg.color = BG;
+ // foreach (var renderer in otherRenderer)
+ // {
+ // renderer.color = BG;
+ // }
+ // if (separate)
+ // {
+ // var colors = new Color[] {meter1, meter2, meter3, meter4, meter5, meter6};
+ // for (int i = 0; i < metersFuel.Length; i++)
+ // {
+ // metersFuel[i].color = colors[i];
+ // }
+ // }
+ // else
+ // {
+ // for (int i = 0; i < metersFuel.Length; i++)
+ // {
+ // metersFuel[i].color = meters;
+ // }
+ // }
+ }
+ public void ObjectColorSet(Color fuelColor, Color lampColorOff, Color lampColorOn, Color impact, Color filler, Color conveyer)
+ {
+ fuelColorGlobal = fuelColor; lampColorOffGlobal = lampColorOff; lampColorOnGlobal = lampColorOn;
+
+ impactMaterial.SetColor("_ColorAlpha", impact);
+ this.conveyerBelt.GetComponent().color = conveyer;
+ foreach (var renderer in fillerRenderer)
+ {
+ renderer.color = filler;
+ }
+ }
+
+ private void UpdateBackgroundColor()
+ {
+ BGPlane.color = colorEases[0].GetColor();
+ foreach (var renderer in otherRenderer)
+ {
+ renderer.color = colorEases[0].GetColor();
+ }
- var colors = new Color[] {meter1, meter2, meter3, meter4, meter5, meter6};
for (int i = 0; i < metersFuel.Length; i++)
{
- metersFuel[i].color = colors[i];
+ metersFuel[i].color = colorEases[i+1].GetColor();
}
}
}
diff --git a/Assets/Scripts/Games/Fillbots/FullBody.cs b/Assets/Scripts/Games/Fillbots/FullBody.cs
index 972718f4b..47891e5c2 100644
--- a/Assets/Scripts/Games/Fillbots/FullBody.cs
+++ b/Assets/Scripts/Games/Fillbots/FullBody.cs
@@ -11,8 +11,8 @@ namespace HeavenStudio.Games.Scripts_Fillbots
[SerializeField] private Sprite[] sprites;
[SerializeField] private SpriteRenderer fullBody;
- [System.NonSerialized] public Color lampColorOff;
- [System.NonSerialized] public Color lampColorOn;
+ [System.NonSerialized] public Color lampColorOff = new Color(0.635f, 0.635f, 0.185f);
+ [System.NonSerialized] public Color lampColorOn = new Color(1f, 1f, 0.42f);
public enum LampState
{
diff --git a/Assets/Scripts/Games/Fillbots/NtrFillbot.cs b/Assets/Scripts/Games/Fillbots/NtrFillbot.cs
index fdd5f0020..7e240236d 100644
--- a/Assets/Scripts/Games/Fillbots/NtrFillbot.cs
+++ b/Assets/Scripts/Games/Fillbots/NtrFillbot.cs
@@ -19,6 +19,7 @@ namespace HeavenStudio.Games.Scripts_Fillbots
Ace,
Just,
Ng,
+ Dance,
}
public enum EndAnim
@@ -34,10 +35,7 @@ namespace HeavenStudio.Games.Scripts_Fillbots
[SerializeField] private BotSize size;
public double holdLength = 4f;
[SerializeField] private float limbFallHeight = 15f;
- [System.NonSerialized] public Color fuelColor;
- [System.NonSerialized] public Color lampColorOff;
- [System.NonSerialized] public Color lampColorOn;
- double conveyerRestartLength = 0.5;
+ [System.NonSerialized] public double conveyerRestartLength = 0.5;
[System.NonSerialized] public double startBeat = -1;
private double conveyerStartBeat = -1;
@@ -79,7 +77,8 @@ namespace HeavenStudio.Games.Scripts_Fillbots
private Sound fillSound;
- private BotState botState = BotState.Idle;
+ private BotState _botState = BotState.Idle;
+ public BotState botState { get { return _botState; }}
private bool isExplode = false;
[System.NonSerialized] public bool isStack;
private double stackBeat, stackLength;
@@ -117,7 +116,7 @@ namespace HeavenStudio.Games.Scripts_Fillbots
public void MoveConveyer(float normalized, float lerpDistance, float flyDistance = 0)
{
- if (botState is BotState.Holding)
+ if (_botState is BotState.Holding)
{
StopConveyer();
return;
@@ -125,7 +124,7 @@ namespace HeavenStudio.Games.Scripts_Fillbots
transform.position = new Vector3(Mathf.LerpUnclamped(startPos.x, startPos.x + lerpDistance, normalized),
Mathf.LerpUnclamped(startPos.y, startPos.y + flyDistance, normalized));
- if (normalized >= 5)
+ if (normalized >= 8)
{
game.currentBots.Remove(this);
Destroy(gameObject);
@@ -152,21 +151,6 @@ namespace HeavenStudio.Games.Scripts_Fillbots
{
conveyerStartBeat = startBeat + 3;
- fullBodyMaterial = fullBody.GetComponent().material;
- fullBodyMaterial.SetColor("_ColorBravo", fuelColor);
- fullBodyMaterial.SetColor("_ColorAlpha", lampColorOff);
-
- Material botMaterial;
-
- botMaterial = head.GetComponent().material;
- botMaterial.SetColor("_ColorAlpha", lampColorOff);
-
- fuelFill.color = fuelColor;
-
- var full = fullBody.GetComponent();
- full.lampColorOff = lampColorOff;
- full.lampColorOn = lampColorOn;
-
BeatAction.New(game, new List()
{
new BeatAction.Action(startBeat, delegate { legs.Play("Impact", 0, 0); legsHaveFallen = true; legsTrans.position = new Vector3(legsTrans.position.x, legsPosY); }),
@@ -189,18 +173,38 @@ namespace HeavenStudio.Games.Scripts_Fillbots
_ => throw new System.NotImplementedException()
};
- MultiSound.Play(new MultiSound.Sound[]
+ List sounds = new();
+ float normalizedBeat = Conductor.instance.GetPositionFromBeat(startBeat, 1);
+ Debug.Log(Mathf.Max(normalizedBeat-0.1f, 0));
+ for (int i = (int)Mathf.Ceil(Mathf.Max(normalizedBeat-0.1f, 0)); i <= 2; i++)
{
- new MultiSound.Sound("fillbots/" + sizePrefix + "Fall", startBeat),
- new MultiSound.Sound("fillbots/" + sizePrefix + "Fall", startBeat + 1),
- new MultiSound.Sound("fillbots/" + sizePrefix + "Fall", startBeat + 2),
- });
+ sounds.Add(new("fillbots/" + sizePrefix + "Fall", startBeat + i));
+ }
+ if (sounds.Count > 0) MultiSound.Play(sounds.ToArray(), true, true);
game.ScheduleInput(startBeat, 4, Fillbots.InputAction_BasicPress, JustHold, Empty, Empty);
game.currentBots.Add(this);
}
+ public void InitColor(Color fuelColor, Color lampColorOff, Color lampColorOn)
+ {
+ fullBodyMaterial = fullBody.GetComponent().material;
+ fullBodyMaterial.SetColor("_ColorBravo", fuelColor);
+ fullBodyMaterial.SetColor("_ColorAlpha", lampColorOff);
+
+ Material botMaterial;
+
+ botMaterial = head.GetComponent().material;
+ botMaterial.SetColor("_ColorAlpha", lampColorOff);
+
+ fuelFill.color = fuelColor;
+
+ var full = fullBody.GetComponent();
+ full.lampColorOff = lampColorOff;
+ full.lampColorOn = lampColorOn;
+ }
+
private void Update()
{
var cond = Conductor.instance;
@@ -243,17 +247,24 @@ namespace HeavenStudio.Games.Scripts_Fillbots
}
if (headHasFallen && bodyHasFallen && legsHaveFallen)
{
- float normalizedBeat = cond.GetPositionFromBeat(this.conveyerStartBeat, conveyerLength);
- if (normalizedBeat >= 0)
+ if (this.conveyerStartBeat >= 0)
{
- if (botState is BotState.Ace) MoveConveyer(normalizedBeat, lerpDistance, flyDistance);
- else if (botState is BotState.Idle) MoveConveyer(normalizedBeat, lerpIdleDistance);
- else MoveConveyer(normalizedBeat, lerpDistance);
+ float normalizedBeat = cond.GetPositionFromBeat(this.conveyerStartBeat, conveyerLength);
+ if (normalizedBeat >= 0)
+ {
+ if (_botState is BotState.Ace) MoveConveyer(normalizedBeat, lerpDistance, flyDistance);
+ else if (_botState is BotState.Idle) MoveConveyer(normalizedBeat, lerpIdleDistance);
+ else MoveConveyer(normalizedBeat, lerpDistance);
+ }
+ }
+ else
+ {
+ StopConveyer();
}
}
}
- if (botState is BotState.Holding)
+ if (_botState is BotState.Holding)
{
float normalizedBeat = cond.GetPositionFromBeat(startBeat + 4, holdLength);
float normalizedExplodeBeat = cond.GetPositionFromBeat(startBeat + 4, holdLength + 0.25);
@@ -284,6 +295,7 @@ namespace HeavenStudio.Games.Scripts_Fillbots
BeatAction.New(game, new List()
{
new BeatAction.Action(startBeat + holdLength + 5.5, delegate {
+ game.fillerHolding = false;
SoundByte.PlayOneShotGame("fillbots/explosion");
game.currentBots.Remove(this);
Destroy(gameObject);
@@ -304,10 +316,19 @@ namespace HeavenStudio.Games.Scripts_Fillbots
}
fillSound.KillLoop(0);
beepEvent.enabled = false;
- botState = BotState.Ng;
+ _botState = BotState.Ng;
+ game.fillerHolding = false;
normalizedFill = normalizedBeat;
- this.conveyerStartBeat = cond.songPositionInBeats + conveyerRestartLength;
- if (game.conveyerStartBeat == -1) game.conveyerStartBeat = this.conveyerStartBeat;
+ if (conveyerRestartLength >= 0)
+ {
+ this.conveyerStartBeat = cond.songPositionInBeats + conveyerRestartLength;
+ if (game.conveyerStartBeat == -1) game.conveyerStartBeat = this.conveyerStartBeat;
+ }
+ else
+ {
+ this.conveyerStartBeat = -1;
+ game.conveyerStartBeat = -1;
+ }
releaseEvent.Disable();
}
}
@@ -339,7 +360,8 @@ namespace HeavenStudio.Games.Scripts_Fillbots
game.conveyerStartBeat = -1;
conveyerLength = 1;
transform.position = new Vector3(0, transform.position.y, 0);
- botState = BotState.Holding;
+ _botState = BotState.Holding;
+ game.fillerHolding = true;
fullBody.DoScaledAnimationAsync("Hold", 1f);
SoundByte.PlayOneShotGame("fillbots/beep");
fillSound = SoundByte.PlayOneShotGame("fillbots/water", -1, 1 / (float)(holdLength / 3), 1, true);
@@ -357,8 +379,16 @@ namespace HeavenStudio.Games.Scripts_Fillbots
{
fillSound.KillLoop(0);
beepEvent.enabled = false;
- this.conveyerStartBeat = caller.timer + caller.startBeat + conveyerRestartLength;
- if (game.conveyerStartBeat != -2) game.conveyerStartBeat = this.conveyerStartBeat;
+ if (conveyerRestartLength >= 0)
+ {
+ this.conveyerStartBeat = caller.timer + caller.startBeat + conveyerRestartLength;
+ if (game.conveyerStartBeat != -2) game.conveyerStartBeat = this.conveyerStartBeat;
+ }
+ else
+ {
+ this.conveyerStartBeat = -1;
+ game.conveyerStartBeat = -1;
+ }
string sizeSuffix = game.fillerPosition switch
{
@@ -369,26 +399,26 @@ namespace HeavenStudio.Games.Scripts_Fillbots
};
if (state >= 1f)
{
- botState = BotState.Ng;
+ _botState = BotState.Ng;
SoundByte.PlayOneShotGame("fillbots/miss");
game.filler.DoScaledAnimationAsync("ReleaseWhiff" + sizeSuffix, 0.5f);
- SoundByte.PlayOneShotGame("fillbots/armRetraction2");
+ SoundByte.PlayOneShotGame("fillbots/armRetractionPop");
fullBody.DoScaledAnimationAsync("ReleaseLate", 0.5f);
return;
}
else if (state <= -1f)
{
- botState = BotState.Ng;
+ _botState = BotState.Ng;
SoundByte.PlayOneShotGame("fillbots/miss");
game.filler.DoScaledAnimationAsync("ReleaseWhiff" + sizeSuffix, 0.5f);
- SoundByte.PlayOneShotGame("fillbots/armRetraction2");
+ SoundByte.PlayOneShotGame("fillbots/armRetractionPop");
fullBody.DoScaledAnimationAsync("ReleaseEarly", 0.5f);
return;
}
if ((endAnim is EndAnim.Both && state == 0) || endAnim is EndAnim.Ace)
{
- botState = BotState.Ace;
+ _botState = BotState.Ace;
BeatAction.New(game, new List()
{
new BeatAction.Action(caller.startBeat + caller.timer + 0.5, delegate {
@@ -398,19 +428,28 @@ namespace HeavenStudio.Games.Scripts_Fillbots
}
else
{
- botState = BotState.Just;
-
- // No, Sync to Bop
- BeatAction.New(game, new List()
+ _botState = BotState.Just;
+ if (size is BotSize.Small)
{
- new BeatAction.Action(caller.startBeat + caller.timer + 1, delegate {
- fullBody.DoScaledAnimationAsync("Success", 0.5f);
- }),
- new BeatAction.Action(caller.startBeat + caller.timer + 2, delegate {
- fullBody.DoScaledAnimationAsync("Success", 0.5f);
- }),
- });
+ BeatAction.New(game, new List()
+ {
+ new BeatAction.Action(caller.startBeat + caller.timer + 1, delegate {
+ fullBody.DoScaledAnimationAsync("Success", 0.5f);
+ }),
+ });
+ }
+ else
+ {
+ BeatAction.New(game, new List()
+ {
+ new BeatAction.Action(caller.startBeat + caller.timer + 0.9, delegate {
+ _botState = BotState.Dance;
+ }),
+ });
+ }
+
}
+ game.fillerHolding = false;
game.filler.DoScaledAnimationAsync("Release" + sizeSuffix, 0.5f);
SoundByte.PlayOneShotGame("fillbots/armRetraction");
fullBody.DoScaledAnimationAsync("Release", 1f);
@@ -431,6 +470,11 @@ namespace HeavenStudio.Games.Scripts_Fillbots
private void Empty(PlayerActionEvent caller) { }
+ public void SuccessDance()
+ {
+ fullBody.DoScaledAnimationAsync("Success", 0.5f);
+ }
+
public bool ReportBeat(ref double lastReportedBeat)
{
var cond = Conductor.instance;