diff --git a/Assets/Resources/DOTweenSettings.asset b/Assets/Resources/DOTweenSettings.asset index 5bed25cd..668f6bc5 100644 --- a/Assets/Resources/DOTweenSettings.asset +++ b/Assets/Resources/DOTweenSettings.asset @@ -25,7 +25,7 @@ MonoBehaviour: logBehaviour: 0 drawGizmos: 1 defaultRecyclable: 0 - defaultAutoPlay: 3 + defaultAutoPlay: 2 defaultUpdateType: 0 defaultTimeScaleIndependent: 0 defaultEaseType: 6 diff --git a/Assets/Scenes/StartMenu.unity b/Assets/Scenes/StartMenu.unity index d5f9cbde..d7f74fb7 100644 --- a/Assets/Scenes/StartMenu.unity +++ b/Assets/Scenes/StartMenu.unity @@ -14550,7 +14550,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 4337614255116277774} m_HandleRect: {fileID: 4337614255116277775} m_Direction: 2 - m_Value: 1 + m_Value: 0 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: diff --git a/Assets/Scripts/EditorGame/Base/GeneralSubmodules/EffectSubmodule.cs b/Assets/Scripts/EditorGame/Base/GeneralSubmodules/EffectSubmodule.cs index 364399cb..3c3e550b 100644 --- a/Assets/Scripts/EditorGame/Base/GeneralSubmodules/EffectSubmodule.cs +++ b/Assets/Scripts/EditorGame/Base/GeneralSubmodules/EffectSubmodule.cs @@ -261,6 +261,14 @@ namespace Ichni.RhythmGame return EffectState.Error; } + /// + /// 当从Before状态进入Middle状态时,仅在效果的开始时触发一次方法 + /// + public virtual void PreExecute() + { + + } + /// /// 在效果的持续时间内,触发这个方法 /// diff --git a/Assets/Scripts/EditorGame/GameElements/Notes/NoteEffects/NoteGenerateEffect.cs b/Assets/Scripts/EditorGame/GameElements/Notes/NoteEffects/NoteGenerateEffect.cs index bc8312c6..536267e8 100644 --- a/Assets/Scripts/EditorGame/GameElements/Notes/NoteEffects/NoteGenerateEffect.cs +++ b/Assets/Scripts/EditorGame/GameElements/Notes/NoteEffects/NoteGenerateEffect.cs @@ -13,25 +13,57 @@ namespace Ichni.RhythmGame protected override EffectState CheckEffectState(float triggerTime) { float songTime = EditorManager.instance.songInformation.songTime; + triggerTime -= generateTime; - if (songTime < triggerTime - generateTime) + if (songTime < triggerTime) { return EffectState.Before; } - if (songTime >= triggerTime - generateTime && - songTime <= triggerTime - generateTime + effectTime) + if (songTime >= triggerTime && + songTime <= triggerTime + effectTime) { return EffectState.Middle; } - if (songTime > triggerTime - generateTime + effectTime) + if (songTime > triggerTime + effectTime) { return EffectState.After; } return EffectState.Error; } + + public override void UpdateEffect(float triggerTime) + { + EffectState state = CheckEffectState(triggerTime); + float songTime = EditorManager.instance.songInformation.songTime; + triggerTime -= generateTime; + + if (state == EffectState.Before && nowEffectState != EffectState.Before) + { + nowEffectState = EffectState.Before; + effectProgressPercent = 0; + Recover(); + } + else if (state == EffectState.Middle) + { + if (nowEffectState == EffectState.Before) + { + PreExecute(); + } + + nowEffectState = EffectState.Middle; + effectProgressPercent = (songTime - triggerTime) / effectTime; + Execute(); + } + else if (state == EffectState.After && nowEffectState != EffectState.After) + { + nowEffectState = EffectState.After; + effectProgressPercent = 1; + Adjust(); + } + } } namespace Beatmap diff --git a/Assets/Scripts/EditorGame/GameElements/Notes/NoteVisual/NoteVisualBase.cs b/Assets/Scripts/EditorGame/GameElements/Notes/NoteVisual/NoteVisualBase.cs index 9f089f76..ea9889b9 100644 --- a/Assets/Scripts/EditorGame/GameElements/Notes/NoteVisual/NoteVisualBase.cs +++ b/Assets/Scripts/EditorGame/GameElements/Notes/NoteVisual/NoteVisualBase.cs @@ -27,5 +27,10 @@ namespace Ichni.RhythmGame { selectSubmodule = new SelectSubmodule(this, note); } + + public virtual void Recover() + { + + } } } \ No newline at end of file diff --git a/Assets/Scripts/Manager/EditorManager.cs b/Assets/Scripts/Manager/EditorManager.cs index b6e944f8..e6d24a2f 100644 --- a/Assets/Scripts/Manager/EditorManager.cs +++ b/Assets/Scripts/Manager/EditorManager.cs @@ -105,7 +105,16 @@ namespace Ichni var inGameSettings = container.GenerateSubcontainer(3); var judgeTypeDropdown = inspector.GenerateDropdown(this, inGameSettings, "Judge Type", - typeof(NoteBase.NoteJudgeType), nameof(currentJudgeType)); + typeof(NoteBase.NoteJudgeType), nameof(currentJudgeType)).AddListenerFunction(() => + { + foreach (GameElement gameElement in beatmapContainer.gameElementList) + { + if (gameElement is NoteVisualBase noteVisual) + { + noteVisual.Recover(); + } + } + }); var useNotePrefabToggle = inspector.GenerateToggle(this, inGameSettings, "Use Note Prefab", nameof(useNotePrefab)); diff --git a/Assets/StreamingAssets/Projects/IceFlowerMaster/Beatmap.json b/Assets/StreamingAssets/Projects/IceFlowerMaster/Beatmap.json index e9613b84..1586f10b 100644 --- a/Assets/StreamingAssets/Projects/IceFlowerMaster/Beatmap.json +++ b/Assets/StreamingAssets/Projects/IceFlowerMaster/Beatmap.json @@ -2387,199 +2387,6 @@ "attachedElementGuid" : { "value" : "0bd97ebe-3433-44d7-a80b-7af84f2c7055" } - },{ - "__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp", - "exactJudgeTime" : 11, - "elementName" : "New Tap", - "tags" : [ - - ], - "elementGuid" : { - "value" : "b39c5df5-7828-40da-9953-be4df206e5fe" - }, - "attachedElementGuid" : { - "value" : "1500056c-f5cb-4c71-8096-d6aa6e2ef716" - } - },{ - "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", - "isOverridingDuration" : false, - "startTime" : -32767, - "endTime" : 32767, - "attachedElementGuid" : { - "value" : "b39c5df5-7828-40da-9953-be4df206e5fe" - } - },{ - "__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp", - "judgeUnitList" : [ - { - "__type" : "Ichni.RhythmGame.Beatmap.TouchAreaJudgeUnit_BM,Assembly-CSharp", - "areaRadius" : 1000 - } - ], - "attachedElementGuid" : { - "value" : "b39c5df5-7828-40da-9953-be4df206e5fe" - } - },{ - "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteVisual_BM,Assembly-CSharp", - "themeBundleName" : "departure_to_multiverse", - "objectName" : "DTM_NoteVisualTap", - "elementName" : "New Note Visual", - "tags" : [ - - ], - "elementGuid" : { - "value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e" - }, - "attachedElementGuid" : { - "value" : "b39c5df5-7828-40da-9953-be4df206e5fe" - } - },{ - "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", - "originalPosition" : { - "x" : 0, - "y" : 0, - "z" : 0 - }, - "originalEulerAngles" : { - "x" : 0, - "y" : 0, - "z" : 0 - }, - "originalScale" : { - "x" : 1, - "y" : 1, - "z" : 1 - }, - "attachedElementGuid" : { - "value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e" - } - },{ - "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", - "isOverridingDuration" : false, - "startTime" : -32767, - "endTime" : 32767, - "attachedElementGuid" : { - "value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e" - } - },{ - "__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp", - "originalBaseColor" : { - "r" : 1, - "g" : 1, - "b" : 1, - "a" : 1 - }, - "emissionEnabled" : false, - "originalEmissionColor" : { - "r" : 0, - "g" : 0, - "b" : 0, - "a" : 1 - }, - "originalEmissionIntensity" : 0, - "attachedElementGuid" : { - "value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e" - } - },{ - "__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp", - "effectCollection" : {"Generate":[ - - ],"GeneralJudge":[ - - ],"Holding":[ - - ],"Perfect":[ - { - "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNotePerfectBurst_BM,Assembly-CSharp", - "effectTime" : 0 - },{ - "__type" : "Ichni.RhythmGame.Beatmap.BloomEffect_BM,Assembly-CSharp", - "duration" : 1, - "peak" : 10, - "intensityCurve" : { - "keys" : [ - { - "time" : 0, - "value" : 5, - "inTangent" : 0, - "outTangent" : 0 - },{ - "time" : 0.5, - "value" : 2, - "inTangent" : 0, - "outTangent" : 0 - },{ - "time" : 1, - "value" : 0, - "inTangent" : 0, - "outTangent" : 0 - } - ], - "preWrapMode" : 8, - "postWrapMode" : 8 - }, - "effectTime" : 0 - } - ],"Good":[ - { - "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGoodBurst_BM,Assembly-CSharp", - "effectTime" : 0 - } - ],"Bad":[ - { - "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteBadBurst_BM,Assembly-CSharp", - "effectTime" : 0 - } - ],"Miss":[ - - ],"AfterJudge":[ - - ] - }, - "attachedElementGuid" : { - "value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e" - } - },null,{ - "__type" : "Ichni.RhythmGame.Beatmap.Displacement_BM,Assembly-CSharp", - "positionX" : { - "animatedFloatList" : [ - { - "startValue" : 10, - "endValue" : 0, - "startTime" : 9.032258, - "endTime" : 10.96774, - "animationCurveType" : 4 - } - ] - }, - "positionY" : { - "animatedFloatList" : [ - - ] - }, - "positionZ" : { - "animatedFloatList" : [ - - ] - }, - "elementName" : "New Displacement", - "tags" : [ - - ], - "elementGuid" : { - "value" : "75d39ea7-9f05-4c49-8896-6463aca12626" - }, - "attachedElementGuid" : { - "value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e" - } - },{ - "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", - "isOverridingDuration" : false, - "startTime" : -32767, - "endTime" : 32767, - "attachedElementGuid" : { - "value" : "75d39ea7-9f05-4c49-8896-6463aca12626" - } },{ "__type" : "Ichni.RhythmGame.Beatmap.TrackPercentPoint_BM,Assembly-CSharp", "trackPercent" : { @@ -2644,6 +2451,24 @@ "startTime" : 0, "endTime" : 21.4, "animationCurveType" : 0 + },{ + "startValue" : 0, + "endValue" : 1, + "startTime" : 0, + "endTime" : 21.4, + "animationCurveType" : 0 + },{ + "startValue" : 0, + "endValue" : 1, + "startTime" : 0, + "endTime" : 21.4, + "animationCurveType" : 0 + },{ + "startValue" : 0, + "endValue" : 1, + "startTime" : 0, + "endTime" : 21.4, + "animationCurveType" : 0 } ] }, @@ -2671,10 +2496,10 @@ "animatedFloatList" : [ { "startValue" : 1, - "endValue" : 1, + "endValue" : 0.1, "startTime" : 0, - "endTime" : 1, - "animationCurveType" : 0 + "endTime" : 20, + "animationCurveType" : 3 } ] }, @@ -2817,6 +2642,24 @@ "startTime" : 0, "endTime" : 21.4, "animationCurveType" : 0 + },{ + "startValue" : 0, + "endValue" : 1, + "startTime" : 0, + "endTime" : 21.4, + "animationCurveType" : 0 + },{ + "startValue" : 0, + "endValue" : 1, + "startTime" : 0, + "endTime" : 21.4, + "animationCurveType" : 0 + },{ + "startValue" : 0, + "endValue" : 1, + "startTime" : 0, + "endTime" : 21.4, + "animationCurveType" : 0 } ] }, @@ -2844,9 +2687,9 @@ "animatedFloatList" : [ { "startValue" : 1, - "endValue" : 1, + "endValue" : 0.1, "startTime" : 0, - "endTime" : 1, + "endTime" : 20, "animationCurveType" : 0 } ] @@ -2859,6 +2702,9 @@ },{ "value" : true, "time" : 5 + },{ + "value" : false, + "time" : 20 } ] }, @@ -2929,7 +2775,176 @@ "attachedElementGuid" : { "value" : "e7f3c3e3-5767-48a9-adaf-4de5e704c6c9" } - } + },{ + "__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp", + "exactJudgeTime" : 10, + "elementName" : "New Tap", + "tags" : [ + + ], + "elementGuid" : { + "value" : "95a9c714-6cd8-41e5-8a87-50282520582a" + }, + "attachedElementGuid" : { + "value" : "1500056c-f5cb-4c71-8096-d6aa6e2ef716" + } + },{ + "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", + "isOverridingDuration" : false, + "startTime" : -32767, + "endTime" : 32767, + "attachedElementGuid" : { + "value" : "95a9c714-6cd8-41e5-8a87-50282520582a" + } + },{ + "__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp", + "judgeUnitList" : [ + { + "__type" : "Ichni.RhythmGame.Beatmap.TouchAreaJudgeUnit_BM,Assembly-CSharp", + "areaRadius" : 1000 + } + ], + "attachedElementGuid" : { + "value" : "95a9c714-6cd8-41e5-8a87-50282520582a" + } + },{ + "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteVisual_BM,Assembly-CSharp", + "themeBundleName" : "departure_to_multiverse", + "objectName" : "DTM_NoteVisualTap", + "elementName" : "New Note Visual", + "tags" : [ + + ], + "elementGuid" : { + "value" : "f865cc6e-018d-4aca-a69c-e7dfc58e021a" + }, + "attachedElementGuid" : { + "value" : "95a9c714-6cd8-41e5-8a87-50282520582a" + } + },{ + "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", + "originalPosition" : { + "x" : 0, + "y" : 0, + "z" : 0 + }, + "originalEulerAngles" : { + "x" : 0, + "y" : 0, + "z" : 0 + }, + "originalScale" : { + "x" : 1, + "y" : 1, + "z" : 1 + }, + "attachedElementGuid" : { + "value" : "f865cc6e-018d-4aca-a69c-e7dfc58e021a" + } + },{ + "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", + "isOverridingDuration" : false, + "startTime" : -32767, + "endTime" : 32767, + "attachedElementGuid" : { + "value" : "f865cc6e-018d-4aca-a69c-e7dfc58e021a" + } + },{ + "__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp", + "originalBaseColor" : { + "r" : 1, + "g" : 1, + "b" : 1, + "a" : 1 + }, + "emissionEnabled" : false, + "originalEmissionColor" : { + "r" : 0, + "g" : 0, + "b" : 0, + "a" : 1 + }, + "originalEmissionIntensity" : 0, + "attachedElementGuid" : { + "value" : "f865cc6e-018d-4aca-a69c-e7dfc58e021a" + } + },{ + "__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp", + "effectCollection" : {"Generate":[ + { + "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGenerateExpand_BM,Assembly-CSharp", + "effectTime" : 0, + "generateTime" : 0, + "generateTime" : 1, + "effectTime" : 0.2 + } + ],"GeneralJudge":[ + + ],"Holding":[ + + ],"Perfect":[ + { + "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNotePerfectBurst_BM,Assembly-CSharp", + "effectTime" : 0 + },{ + "__type" : "Ichni.RhythmGame.Beatmap.BloomEffect_BM,Assembly-CSharp", + "duration" : 0.5, + "peak" : 20, + "intensityCurve" : { + "keys" : [ + { + "time" : 0, + "value" : 0, + "inTangent" : 0, + "outTangent" : 0 + },{ + "time" : 0.5, + "value" : 2, + "inTangent" : 0, + "outTangent" : 0 + },{ + "time" : 1, + "value" : 0, + "inTangent" : 0, + "outTangent" : 0 + } + ], + "preWrapMode" : 8, + "postWrapMode" : 8 + }, + "effectTime" : 0 + },{ + "__type" : "Ichni.RhythmGame.Beatmap.CameraShakeEffect_BM,Assembly-CSharp", + "duration" : 0.5, + "frequency" : 50, + "amplitudeX" : 0, + "amplitudeY" : 0, + "amplitudeZ" : 1, + "effectTime" : 0 + } + ],"Good":[ + { + "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGoodBurst_BM,Assembly-CSharp", + "effectTime" : 0 + } + ],"Bad":[ + { + "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteBadBurst_BM,Assembly-CSharp", + "effectTime" : 0 + } + ],"Miss":[ + { + "__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteMissTransparent_BM,Assembly-CSharp", + "effectTime" : 0.2 + } + ],"AfterJudge":[ + + ] + }, + "attachedElementGuid" : { + "value" : "f865cc6e-018d-4aca-a69c-e7dfc58e021a" + } + },null ], "attachedElementGuid" : { "value" : "00000000-0000-0000-0000-000000000000" diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 index af6f9863..94ede58b 100644 Binary files a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 and b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 differ diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest index 9f74b30a..15947a6d 100644 --- a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest @@ -1,10 +1,10 @@ ManifestFileVersion: 0 -CRC: 1388206140 +CRC: 2575371555 AssetBundleManifest: AssetBundleInfos: Info_0: - Name: basic - Dependencies: {} - Info_1: Name: departure_to_multiverse Dependencies: {} + Info_1: + Name: basic + Dependencies: {} diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest index 607c7352..d570547c 100644 --- a/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest @@ -3,13 +3,13 @@ CRC: 439702842 Hashes: AssetFileHash: serializedVersion: 2 - Hash: d681ca4cd01a649afe8624589e943f81 + Hash: ee570faa9d56544c4121dea6116ae78f TypeTreeHash: serializedVersion: 2 Hash: cf356d0fd75860b8b7f0bceda4b43d7a IncrementalBuildHash: serializedVersion: 2 - Hash: d681ca4cd01a649afe8624589e943f81 + Hash: ee570faa9d56544c4121dea6116ae78f HashAppended: 0 ClassTypes: - Class: 1 diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse b/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse index e843f262..1d0b8a89 100644 Binary files a/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse and b/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse differ diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse.manifest b/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse.manifest index 827d24fc..c3125667 100644 --- a/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse.manifest +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse.manifest @@ -1,15 +1,15 @@ ManifestFileVersion: 0 -CRC: 1057247004 +CRC: 1366381981 Hashes: AssetFileHash: serializedVersion: 2 - Hash: ae97a71e4c28021ae9c4c0d8f54a3b0d + Hash: fb173c362bc2c652f4e01aaee8dd1372 TypeTreeHash: serializedVersion: 2 - Hash: b1a2a3a6b336133189b50637512f9e51 + Hash: 5e24545750d5bc6a54ed40af3f398b27 IncrementalBuildHash: serializedVersion: 2 - Hash: ae97a71e4c28021ae9c4c0d8f54a3b0d + Hash: fb173c362bc2c652f4e01aaee8dd1372 HashAppended: 0 ClassTypes: - Class: 1 @@ -32,12 +32,12 @@ ClassTypes: Script: {instanceID: 0} - Class: 96 Script: {instanceID: 0} -- Class: 114 - Script: {fileID: 11500000, guid: eb907071d10d7324995ff3aefbc2f1df, type: 3} - Class: 114 Script: {fileID: 11500000, guid: ea0771a0c87f746769a9ffd7286a0665, type: 3} - Class: 114 Script: {fileID: 11500000, guid: b37c44f04f3075045aef6be2c0506551, type: 3} +- Class: 114 + Script: {fileID: 11500000, guid: eb907071d10d7324995ff3aefbc2f1df, type: 3} - Class: 115 Script: {instanceID: 0} - Class: 135 diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualFlick.prefab b/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualFlick.prefab index 4d763be8..48c34c2e 100644 --- a/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualFlick.prefab +++ b/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualFlick.prefab @@ -20014,7 +20014,8 @@ MonoBehaviour: noteMain: {fileID: 5329694043409909306} judgeEffect: {fileID: 6461584531587415413} notePartList: - - {fileID: 5329694043409909306} + - {fileID: 7089777165997333510} + - {fileID: 2774408368298850052} effectPartList: - {fileID: 4411086403337526732} --- !u!135 &2070171037236872191 diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Scripts/DTMTrail.cs b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/DTMTrail.cs index 3a729a7d..8be6745d 100644 --- a/Assets/ThemeBundles/DepartureToMultiverse/Scripts/DTMTrail.cs +++ b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/DTMTrail.cs @@ -131,22 +131,12 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse private void EnableHead() { - if(disableHeadSequence.IsPlaying()) - { - disableHeadSequence.Complete(); - } - - enableHeadSequence.Restart(); + enableHeadSequence.PlayForward(); } private void DisableHead() { - if(enableHeadSequence.IsPlaying()) - { - enableHeadSequence.Complete(); - } - - disableHeadSequence.Restart(); + enableHeadSequence.PlayBackwards(); } private Sequence enableHeadSequence; @@ -162,7 +152,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse enableHeadSequence = DOTween.Sequence(); enableHeadSequence.Append(headPoint.transform.DOScale(headSize, enableProcessTime).SetEase(Ease.OutQuad)); enableHeadSequence.Join(headCircle.transform.DOScale(headSize, enableProcessTime).SetEase(Ease.OutQuad)); - enableHeadSequence.OnComplete(()=>Debug.Log("Enable Head")); enableHeadSequence.SetAutoKill(false); disableHeadSequence = DOTween.Sequence(); diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteGenerateExpand.cs b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteGenerateExpand.cs new file mode 100644 index 00000000..024ccf20 --- /dev/null +++ b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteGenerateExpand.cs @@ -0,0 +1,83 @@ +using System.Collections; +using System.Collections.Generic; +using DG.Tweening; +using Dreamteck.Splines; +using Ichni.Editor; +using Ichni.RhythmGame.Beatmap; +using Ichni.RhythmGame.ThemeBundles.Basic; +using UnityEngine; + +namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse +{ + public class DTMNoteGenerateExpand : NoteGenerateEffect + { + public DTMNoteGenerateExpand(NoteVisualBase noteVisual, float generateTime, float effectTime) + { + this.note = noteVisual.note; + this.noteVisual = noteVisual; + this.generateTime = generateTime; + this.effectTime = effectTime; + } + + public sealed override void Recover() + { + noteVisual.noteMain.SetActive(false); + noteVisual.noteMain.transform.localScale = Vector3.zero; + } + + public override void PreExecute() + { + noteVisual.noteMain.SetActive(true); + } + + public override void Execute() + { + float e = AnimationCurveEvaluator.Evaluate(AnimationCurveType.OutQuad, effectProgressPercent); + noteVisual.noteMain.transform.localScale = e * Vector3.one; + } + + public override void Adjust() + { + noteVisual.noteMain.transform.localScale = Vector3.one; + } + + public override EffectBase_BM ConvertToBM() + { + return new Beatmap.DTMNoteGenerateExpand_BM(effectTime, generateTime); + } + + public override void SetUpInspector() + { + IHaveInspection inspector = EditorManager.instance.uiManager.inspector; + var container = inspector.GenerateContainer("DTM Note Generate Expand"); + var subcontainer = container.GenerateSubcontainer(3); + var generateTimeField = inspector.GenerateInputField(this, subcontainer, "Generate Time", nameof(generateTime)); + var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime)); + } + } + + namespace Beatmap + { + public class DTMNoteGenerateExpand_BM : NoteGenerateEffect_BM + { + public float effectTime; + public float generateTime; + + public DTMNoteGenerateExpand_BM() + { + + } + + public DTMNoteGenerateExpand_BM(float effectTime, float generateTime) : + base(effectTime, generateTime) + { + + } + + public override EffectBase ConvertToGameType(GameElement attachedGameElement) + { + return new DTMNoteGenerateExpand(attachedGameElement as NoteVisualBase, generateTime, effectTime); + } + } + } +} diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteGenerateExpand.cs.meta b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteGenerateExpand.cs.meta new file mode 100644 index 00000000..14fe9feb --- /dev/null +++ b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteGenerateExpand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 69b808d97a6bb7f4aafbf1f8960fceac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteMissTransparent.cs b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteMissTransparent.cs new file mode 100644 index 00000000..60b14ce9 --- /dev/null +++ b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteMissTransparent.cs @@ -0,0 +1,89 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Ichni.Editor; +using Ichni.RhythmGame.Beatmap; +using Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap; +using UnityEngine; + +namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse +{ + public class DTMNoteMissTransparent : NoteMissEffect + { + public List noteRenderers; + public DTMNoteMissTransparent(NoteVisualBase noteVisual, float effectTime) + { + this.note = noteVisual.note; + this.noteVisual = noteVisual; + this.effectTime = effectTime; + this.noteRenderers = new List(); + foreach (Renderer renderer in noteVisual.notePartList.Select(part => part.GetComponent())) + { + noteRenderers.Add(renderer); + } + } + + public override void Recover() + { + noteVisual.noteMain.SetActive(true); + + foreach (var renderer in noteRenderers) + { + renderer.material.SetFloat("_MainAlpha", 1f); + } + } + + public override void Execute() + { + float e = AnimationCurveEvaluator.Evaluate(AnimationCurveType.OutQuad, effectProgressPercent); + float alpha = (1 - e) / 4f; + foreach (var renderer in noteRenderers) + { + renderer.material.SetFloat("_MainAlpha", alpha); + } + } + + public override void Adjust() + { + noteVisual.noteMain.SetActive(false); + foreach (var renderer in noteRenderers) + { + renderer.material.SetFloat("_MainAlpha", 0f); + } + } + + public override EffectBase_BM ConvertToBM() + { + return new DTMNoteMissTransparent_BM(effectTime); + } + + public override void SetUpInspector() + { + IHaveInspection inspector = EditorManager.instance.uiManager.inspector; + var container = inspector.GenerateContainer("DTM Note Miss Transparent"); + var subcontainer = container.GenerateSubcontainer(3); + var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime)); + } + } + + namespace Beatmap + { + public class DTMNoteMissTransparent_BM : NoteMissEffect_BM + { + public DTMNoteMissTransparent_BM() + { + + } + + public DTMNoteMissTransparent_BM(float effectTime) : base(effectTime) + { + + } + + public override EffectBase ConvertToGameType(GameElement attachedGameElement) + { + return new DTMNoteMissTransparent(attachedGameElement as NoteVisualBase, effectTime); + } + } + } +} \ No newline at end of file diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteMissTransparent.cs.meta b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteMissTransparent.cs.meta new file mode 100644 index 00000000..1166becd --- /dev/null +++ b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteEffect/DTMNoteMissTransparent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8ac43839ad4fe246a8da60557bd1991 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteVisual/DTMNoteVisual.cs b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteVisual/DTMNoteVisual.cs index 408c070b..6d589213 100644 --- a/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteVisual/DTMNoteVisual.cs +++ b/Assets/ThemeBundles/DepartureToMultiverse/Scripts/NoteVisual/DTMNoteVisual.cs @@ -1,7 +1,9 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using Ichni.RhythmGame.Beatmap; +using Ichni.RhythmGame.ThemeBundles.Basic; using UnityEngine; namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse @@ -27,16 +29,36 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse if (isFirstGenerated) { note.noteJudgeSubmodule.AddJudgeUnit("TouchArea"); - //effectSubmodule.effectCollection["Generate"].Add(new BasicNoteGenerateExpand(this)); + effectSubmodule.effectCollection["Generate"].Add(new DTMNoteGenerateExpand(this, 1f, 0.2f)); effectSubmodule.effectCollection["Perfect"].Add(new DTMNotePerfectBurst(this)); if (objectName.Contains("Tap")) { effectSubmodule.effectCollection["Good"].Add(new DTMNoteGoodBurst(this)); effectSubmodule.effectCollection["Bad"].Add(new DTMNoteBadBurst(this)); } - //effectSubmodule.effectCollection["Miss"].Add(new BasicNoteMissPale(this)); + effectSubmodule.effectCollection["Miss"].Add(new DTMNoteMissTransparent(this, 0.2f)); } } + + public override void AfterInitialize() + { + Recover(); + } + + public override void Recover() + { + effectPartList.ForEach(effectPart => + { + effectPart.GetComponent().Stop(); + }); + + foreach (Renderer renderer in notePartList.Select(part => part.GetComponent())) + { + renderer.material.SetFloat("_MainAlpha", 1f); + } + + noteMain.transform.localScale = Vector3.zero; + } } public partial class DTMNoteVisual