mirror of
https://github.com/RHeavenStudioPlus/HeavenStudioPlus.git
synced 2024-11-29 21:13:07 +00:00
* add Jukebox library todo: - saving / loading of new format - inferrence of unknown data like past versions - move the temporary float casts to proper use of double - make sound related functions take double for timing - inform people that the Jukebox sound player was renamed to SoundByte lol * make sound, input scheduling, and super curve use double precision * successfully load charts * editor works again v1 riqs can be saved and loaded * first tempo and volume markers are unmovable fix loading of charts' easing values * use gsync / freesync * update Jukebox refs to SoundByte * game events use double part 1 Air Rally - Glee Club converted * don't load song if chart load fails * finish conversion of all minigames * remove editor waveform toggle * timeline now respects added song offset length clear cache files on app close prepped notes for dsp sync * update timeline length when offset changed * update to latest Jukebox * make error panel object in global game manager * improve conductor music scheduling * added error message box fix first game events sometimes not playing
This commit is contained in:
parent
b7afd697ce
commit
b1fab52ad9
176 changed files with 4868 additions and 3013 deletions
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0d89ef13f0e54ef4a9d25d14626da7d5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,92 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: ErrorPanelMaterial
|
||||||
|
m_Shader: {fileID: 4800000, guid: 777678d31f953e04e8f15812003b9c27, type: 3}
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OutSmoothness: 0.015
|
||||||
|
- _OutThickness: 0.75
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _Smoothness: 0.015
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _Thickness: 0.85
|
||||||
|
- _UVSec: 0
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _OutColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: efcc40f3353c0f6449f5289c2a5efb7e
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -3577,7 +3577,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 0}
|
m_AnchorMax: {x: 1, y: 0}
|
||||||
m_AnchoredPosition: {x: -289.15, y: 2}
|
m_AnchoredPosition: {x: -289.15002, y: 2}
|
||||||
m_SizeDelta: {x: -578.29, y: 49.92}
|
m_SizeDelta: {x: -578.29, y: 49.92}
|
||||||
m_Pivot: {x: 0.5, y: 0}
|
m_Pivot: {x: 0.5, y: 0}
|
||||||
--- !u!114 &156962255
|
--- !u!114 &156962255
|
||||||
|
@ -8240,12 +8240,9 @@ MonoBehaviour:
|
||||||
raycastRect: {fileID: 1186810249}
|
raycastRect: {fileID: 1186810249}
|
||||||
moving: 0
|
moving: 0
|
||||||
hovering: 0
|
hovering: 0
|
||||||
|
first: 0
|
||||||
volumeTXT: {fileID: 746356640}
|
volumeTXT: {fileID: 746356640}
|
||||||
volumeLine: {fileID: 1126835990}
|
volumeLine: {fileID: 1126835990}
|
||||||
volumeChange:
|
|
||||||
beat: 0
|
|
||||||
length: 0
|
|
||||||
volume: 0
|
|
||||||
--- !u!114 &380411596
|
--- !u!114 &380411596
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -14314,12 +14311,9 @@ MonoBehaviour:
|
||||||
raycastRect: {fileID: 983551349}
|
raycastRect: {fileID: 983551349}
|
||||||
moving: 0
|
moving: 0
|
||||||
hovering: 0
|
hovering: 0
|
||||||
|
first: 0
|
||||||
tempoTXT: {fileID: 499528699}
|
tempoTXT: {fileID: 499528699}
|
||||||
tempoLine: {fileID: 1287203019}
|
tempoLine: {fileID: 1287203019}
|
||||||
tempoChange:
|
|
||||||
beat: 0
|
|
||||||
length: 0
|
|
||||||
tempo: 0
|
|
||||||
--- !u!114 &666273486
|
--- !u!114 &666273486
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -14922,7 +14916,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0}
|
m_AnchorMin: {x: 0.5, y: 0}
|
||||||
m_AnchorMax: {x: 0.5, y: 0}
|
m_AnchorMax: {x: 0.5, y: 0}
|
||||||
m_AnchoredPosition: {x: -84, y: -128.1}
|
m_AnchoredPosition: {x: -84, y: -128.09998}
|
||||||
m_SizeDelta: {x: 100, y: 100}
|
m_SizeDelta: {x: 100, y: 100}
|
||||||
m_Pivot: {x: 0.5, y: 0}
|
m_Pivot: {x: 0.5, y: 0}
|
||||||
--- !u!114 &683816223
|
--- !u!114 &683816223
|
||||||
|
@ -17478,13 +17472,6 @@ MonoBehaviour:
|
||||||
resizeGraphic: {fileID: 880758902}
|
resizeGraphic: {fileID: 880758902}
|
||||||
leftDrag: {fileID: 2046851080}
|
leftDrag: {fileID: 2046851080}
|
||||||
rightDrag: {fileID: 184364176}
|
rightDrag: {fileID: 184364176}
|
||||||
entity:
|
|
||||||
beat: 0
|
|
||||||
track: 0
|
|
||||||
length: 0
|
|
||||||
swing: 0
|
|
||||||
datamodel:
|
|
||||||
eventObj: {fileID: 0}
|
|
||||||
length: 0
|
length: 0
|
||||||
eligibleToMove: 0
|
eligibleToMove: 0
|
||||||
selected: 0
|
selected: 0
|
||||||
|
@ -17494,7 +17481,7 @@ MonoBehaviour:
|
||||||
moving: 0
|
moving: 0
|
||||||
wasDuplicated: 0
|
wasDuplicated: 0
|
||||||
isCreating: 0
|
isCreating: 0
|
||||||
eventObjID:
|
eventObjID: 0
|
||||||
NormalCol: {r: 0.8470589, g: 0.8470589, b: 1, a: 1}
|
NormalCol: {r: 0.8470589, g: 0.8470589, b: 1, a: 1}
|
||||||
--- !u!222 &798021451
|
--- !u!222 &798021451
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
|
@ -18298,13 +18285,6 @@ MonoBehaviour:
|
||||||
DropdownP: {fileID: 184838087}
|
DropdownP: {fileID: 184838087}
|
||||||
ColorP: {fileID: 1443721746}
|
ColorP: {fileID: 1443721746}
|
||||||
StringP: {fileID: 1671827686}
|
StringP: {fileID: 1671827686}
|
||||||
entity:
|
|
||||||
beat: 0
|
|
||||||
track: 0
|
|
||||||
length: 0
|
|
||||||
swing: 0
|
|
||||||
datamodel:
|
|
||||||
eventObj: {fileID: 0}
|
|
||||||
active: 0
|
active: 0
|
||||||
canDisable: 1
|
canDisable: 1
|
||||||
--- !u!114 &830452355
|
--- !u!114 &830452355
|
||||||
|
@ -23941,7 +23921,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0.5}
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
m_AnchorMax: {x: 1, y: 0.5}
|
m_AnchorMax: {x: 1, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 0, y: 129.96861}
|
m_AnchoredPosition: {x: 0, y: 129.92226}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 1}
|
m_Pivot: {x: 0.5, y: 1}
|
||||||
--- !u!114 &1154875944
|
--- !u!114 &1154875944
|
||||||
|
@ -25916,7 +25896,7 @@ GameObject:
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!224 &1274337802
|
--- !u!224 &1274337802
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -25933,9 +25913,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 1871675778}
|
m_Father: {fileID: 1871675778}
|
||||||
m_RootOrder: 3
|
m_RootOrder: 3
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 129, y: -23}
|
||||||
m_SizeDelta: {x: 35, y: 35}
|
m_SizeDelta: {x: 35, y: 35}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!114 &1274337803
|
--- !u!114 &1274337803
|
||||||
|
@ -31347,14 +31327,10 @@ MonoBehaviour:
|
||||||
raycastRect: {fileID: 738028140}
|
raycastRect: {fileID: 738028140}
|
||||||
moving: 0
|
moving: 0
|
||||||
hovering: 0
|
hovering: 0
|
||||||
|
first: 0
|
||||||
sectionLabel: {fileID: 297792673}
|
sectionLabel: {fileID: 297792673}
|
||||||
chartLine: {fileID: 856705695}
|
chartLine: {fileID: 856705695}
|
||||||
sectionDialog: {fileID: 292323699}
|
sectionDialog: {fileID: 292323699}
|
||||||
chartSection:
|
|
||||||
beat: 0
|
|
||||||
startPerfect: 0
|
|
||||||
sectionName:
|
|
||||||
isCheckpoint: 0
|
|
||||||
--- !u!114 &1542666928
|
--- !u!114 &1542666928
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -32174,7 +32150,7 @@ MonoBehaviour:
|
||||||
m_TargetGraphic: {fileID: 1292844878}
|
m_TargetGraphic: {fileID: 1292844878}
|
||||||
m_HandleRect: {fileID: 1292844877}
|
m_HandleRect: {fileID: 1292844877}
|
||||||
m_Direction: 2
|
m_Direction: 2
|
||||||
m_Value: 1
|
m_Value: 0
|
||||||
m_Size: 1
|
m_Size: 1
|
||||||
m_NumberOfSteps: 0
|
m_NumberOfSteps: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
|
@ -33034,7 +33010,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 111.50012, y: -29.533981}
|
m_AnchoredPosition: {x: 111.50012, y: -29.533966}
|
||||||
m_SizeDelta: {x: 223, y: -108.27}
|
m_SizeDelta: {x: 223, y: -108.27}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &1671351976
|
--- !u!114 &1671351976
|
||||||
|
@ -35819,7 +35795,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: -84.98996}
|
m_AnchoredPosition: {x: 0, y: -84.98999}
|
||||||
m_SizeDelta: {x: 320, y: -84.99}
|
m_SizeDelta: {x: 320, y: -84.99}
|
||||||
m_Pivot: {x: 0, y: 1}
|
m_Pivot: {x: 0, y: 1}
|
||||||
--- !u!1 &1852819572
|
--- !u!1 &1852819572
|
||||||
|
@ -38348,7 +38324,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: -29.529953}
|
m_AnchoredPosition: {x: 0, y: -29.529938}
|
||||||
m_SizeDelta: {x: 0, y: -108.26}
|
m_SizeDelta: {x: 0, y: -108.26}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &1980243267
|
--- !u!114 &1980243267
|
||||||
|
@ -41342,7 +41318,7 @@ PrefabInstance:
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 8995444695224805070, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
|
- target: {fileID: 8995444695224805070, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: -49.99991
|
value: -49.999878
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
|
- target: {fileID: 8995444695466730802, guid: 51bd6620194834c4c9118dd0f64b1b3d, type: 3}
|
||||||
propertyPath: tabs.Array.size
|
propertyPath: tabs.Array.size
|
||||||
|
|
|
@ -1,124 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
using HeavenStudio.Util;
|
|
||||||
|
|
||||||
namespace HeavenStudio
|
|
||||||
{
|
|
||||||
[Serializable]
|
|
||||||
public class Beatmap
|
|
||||||
{
|
|
||||||
public float bpm;
|
|
||||||
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
|
||||||
[DefaultValue(100)]
|
|
||||||
public int musicVolume; // In percent (1-100)
|
|
||||||
|
|
||||||
public List<Entity> entities = new List<Entity>();
|
|
||||||
public List<TempoChange> tempoChanges = new List<TempoChange>();
|
|
||||||
public List<VolumeChange> volumeChanges = new List<VolumeChange>();
|
|
||||||
public float firstBeatOffset;
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
public class Entity : ICloneable
|
|
||||||
{
|
|
||||||
public float beat;
|
|
||||||
public int track;
|
|
||||||
|
|
||||||
// consideration: use arrays instead of hardcoding fixed parameter names
|
|
||||||
// note from zeo: yeah definately use arrays
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float length;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float valA;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float valB;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float valC;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public bool toggle;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public int type;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public int type2;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public int type3;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public int type4;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public int type5;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public int type6;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public EasingFunction.Ease ease;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public Color colorA;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public Color colorB;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public Color colorC;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public Color colorD;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public Color colorE;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public Color colorF;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public string text1;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public string text2;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public string text3;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float swing;
|
|
||||||
public string datamodel;
|
|
||||||
[JsonIgnore] public Editor.Track.TimelineEventObj eventObj;
|
|
||||||
|
|
||||||
public object Clone()
|
|
||||||
{
|
|
||||||
return this.MemberwiseClone();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Entity DeepCopy()
|
|
||||||
{
|
|
||||||
//lol the AI generated this
|
|
||||||
return JsonConvert.DeserializeObject<Entity>(JsonConvert.SerializeObject(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public dynamic this[string propertyName]
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return typeof(Entity).GetField(propertyName).GetValue(this);
|
|
||||||
}
|
|
||||||
catch (NullReferenceException ex)
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.LogWarning($"{propertyName} doesn't exist in this Legacy Entity. Conversion needs to create this field... Exception log: {ex}");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
typeof(Entity).GetField(propertyName).SetValue(this, value);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.LogError($"You probably misspelled a parameter, or defined the object type wrong. Exception log: {ex}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
public class TempoChange : ICloneable
|
|
||||||
{
|
|
||||||
public float beat;
|
|
||||||
public float length;
|
|
||||||
public float tempo;
|
|
||||||
|
|
||||||
public object Clone()
|
|
||||||
{
|
|
||||||
return this.MemberwiseClone();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
public class VolumeChange : ICloneable
|
|
||||||
{
|
|
||||||
public float beat;
|
|
||||||
public float length;
|
|
||||||
public float volume;
|
|
||||||
|
|
||||||
public object Clone()
|
|
||||||
{
|
|
||||||
return this.MemberwiseClone();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,468 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Newtonsoft.Json.Linq;
|
|
||||||
|
|
||||||
using HeavenStudio.Util;
|
|
||||||
|
|
||||||
namespace HeavenStudio
|
|
||||||
{
|
|
||||||
[Serializable]
|
|
||||||
public class DynamicBeatmap
|
|
||||||
{
|
|
||||||
public static int CurrentRiqVersion = 0;
|
|
||||||
public float bpm;
|
|
||||||
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
|
||||||
[DefaultValue(100)] public int musicVolume; // In percent (1-100)
|
|
||||||
|
|
||||||
public Dictionary<string, object> properties =
|
|
||||||
new Dictionary<string, object>() {
|
|
||||||
// software version (MajorMinorPatch, revision)
|
|
||||||
{"productversion", 000},
|
|
||||||
{"productsubversion", 0},
|
|
||||||
// file format version
|
|
||||||
{"riqversion", CurrentRiqVersion},
|
|
||||||
// mapper set properties? (future: use this to flash the button)
|
|
||||||
{"propertiesmodified", false},
|
|
||||||
|
|
||||||
////// CATEGORY 1: SONG INFO
|
|
||||||
// general chart info
|
|
||||||
{"remixtitle", "New Remix"}, // chart name
|
|
||||||
{"remixauthor", "Your Name"}, // charter's name
|
|
||||||
{"remixdesc", "Remix Description"}, // chart description
|
|
||||||
{"remixlevel", 1}, // chart difficulty (maybe offer a suggestion but still have the mapper determine it)
|
|
||||||
{"remixtempo", 120f}, // avg. chart tempo
|
|
||||||
{"remixtags", ""}, // chart tags
|
|
||||||
{"icontype", 0}, // chart icon (presets, custom - future)
|
|
||||||
{"iconurl", ""}, // custom icon location (future)
|
|
||||||
|
|
||||||
// chart song info
|
|
||||||
{"idolgenre", "Song Genre"}, // song genre
|
|
||||||
{"idolsong", "Song Name"}, // song name
|
|
||||||
{"idolcredit", "Artist"}, // song artist
|
|
||||||
|
|
||||||
////// CATEGORY 2: PROLOGUE AND EPILOGUE
|
|
||||||
// chart prologue
|
|
||||||
{"prologuetype", 0}, // prologue card animation (future)
|
|
||||||
{"prologuecaption", "Remix"}, // prologue card sub-title (future)
|
|
||||||
|
|
||||||
// chart results screen messages
|
|
||||||
{"resultcaption", "Rhythm League Notes"}, // result screen header
|
|
||||||
{"resultcommon_hi", "Good rhythm."}, // generic "Superb" message (one-liner, or second line for single-type)
|
|
||||||
{"resultcommon_ok", "Eh. Passable."}, // generic "OK" message (one-liner, or second line for single-type)
|
|
||||||
{"resultcommon_ng", "Try harder next time."}, // generic "Try Again" message (one-liner, or second line for single-type)
|
|
||||||
|
|
||||||
// the following are shown / hidden in-editor depending on the tags of the games used
|
|
||||||
{"resultnormal_hi", "You show strong fundamentals."}, // "Superb" message for normal games (two-liner)
|
|
||||||
{"resultnormal_ng", "Work on your fundamentals."}, // "Try Again" message for normal games (two-liner)
|
|
||||||
|
|
||||||
{"resultkeep_hi", "You kept the beat well."}, // "Superb" message for keep-the-beat games (two-liner)
|
|
||||||
{"resultkeep_ng", "You had trouble keeping the beat."}, // "Try Again" message for keep-the-beat games (two-liner)
|
|
||||||
|
|
||||||
{"resultaim_hi", "You had great aim."}, // "Superb" message for aim games (two-liner)
|
|
||||||
{"resultaim_ng", "Your aim was a little shaky."}, // "Try Again" message for aim games (two-liner)
|
|
||||||
|
|
||||||
{"resultrepeat_hi", "You followed the example well."}, // "Superb" message for call-and-response games (two-liner)
|
|
||||||
{"resultrepeat_ng", "Next time, follow the example better."}, // "Try Again" message for call-and-response games (two-liner)
|
|
||||||
};
|
|
||||||
|
|
||||||
public List<DynamicEntity> entities = new List<DynamicEntity>();
|
|
||||||
public List<TempoChange> tempoChanges = new List<TempoChange>();
|
|
||||||
public List<VolumeChange> volumeChanges = new List<VolumeChange>();
|
|
||||||
public List<ChartSection> beatmapSections = new List<ChartSection>();
|
|
||||||
public float firstBeatOffset;
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
public class DynamicEntity : ICloneable
|
|
||||||
{
|
|
||||||
public float beat;
|
|
||||||
public int track;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float length;
|
|
||||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float swing;
|
|
||||||
public Dictionary<string, dynamic> DynamicData = new Dictionary<string, dynamic>();
|
|
||||||
|
|
||||||
public string datamodel;
|
|
||||||
[JsonIgnore] public Editor.Track.TimelineEventObj eventObj;
|
|
||||||
|
|
||||||
public object Clone()
|
|
||||||
{
|
|
||||||
return this.MemberwiseClone();
|
|
||||||
}
|
|
||||||
|
|
||||||
public DynamicEntity DeepCopy()
|
|
||||||
{
|
|
||||||
DynamicEntity copy = (DynamicEntity)this.MemberwiseClone();
|
|
||||||
copy.DynamicData = new Dictionary<string, dynamic>(this.DynamicData);
|
|
||||||
return copy;
|
|
||||||
}
|
|
||||||
|
|
||||||
public dynamic this[string propertyName]
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
switch (propertyName)
|
|
||||||
{
|
|
||||||
case "beat":
|
|
||||||
return beat;
|
|
||||||
case "track":
|
|
||||||
return track;
|
|
||||||
case "length":
|
|
||||||
return length;
|
|
||||||
case "swing":
|
|
||||||
return swing;
|
|
||||||
case "datamodel":
|
|
||||||
return datamodel;
|
|
||||||
default:
|
|
||||||
if (DynamicData.ContainsKey(propertyName))
|
|
||||||
return DynamicData[propertyName];
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Minigames.Minigame game = EventCaller.instance.GetMinigame(datamodel.Split(0));
|
|
||||||
Minigames.Param param = EventCaller.instance.GetGameParam(game, datamodel.Split(1), propertyName);
|
|
||||||
return param.parameter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
switch (propertyName)
|
|
||||||
{
|
|
||||||
case "beat":
|
|
||||||
case "track":
|
|
||||||
case "length":
|
|
||||||
case "swing":
|
|
||||||
case "datamodel":
|
|
||||||
UnityEngine.Debug.LogWarning($"Property name {propertyName} is reserved and cannot be set.");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (DynamicData.ContainsKey(propertyName))
|
|
||||||
DynamicData[propertyName] = value;
|
|
||||||
else
|
|
||||||
UnityEngine.Debug.LogError($"This entity does not have a property named {propertyName}! Attempted to insert value of type {value.GetType()}");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CreateProperty(string name, dynamic defaultValue)
|
|
||||||
{
|
|
||||||
if (!DynamicData.ContainsKey(name))
|
|
||||||
DynamicData.Add(name, defaultValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
public class TempoChange : ICloneable
|
|
||||||
{
|
|
||||||
public float beat;
|
|
||||||
public float length;
|
|
||||||
public float tempo;
|
|
||||||
|
|
||||||
public object Clone()
|
|
||||||
{
|
|
||||||
return this.MemberwiseClone();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
public class VolumeChange : ICloneable
|
|
||||||
{
|
|
||||||
public float beat;
|
|
||||||
public float length;
|
|
||||||
public float volume;
|
|
||||||
|
|
||||||
public object Clone()
|
|
||||||
{
|
|
||||||
return this.MemberwiseClone();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
public class ChartSection : ICloneable
|
|
||||||
{
|
|
||||||
public float beat;
|
|
||||||
public bool startPerfect;
|
|
||||||
public string sectionName;
|
|
||||||
public bool isCheckpoint; // really don't think we need this but who knows
|
|
||||||
|
|
||||||
public object Clone()
|
|
||||||
{
|
|
||||||
return this.MemberwiseClone();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public dynamic this[string propertyName]
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return properties[propertyName] ?? null;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (properties.ContainsKey(propertyName))
|
|
||||||
{
|
|
||||||
properties[propertyName] = value;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.LogError($"This beatmap does not have a property named {propertyName}! Attempted to insert value of type {value.GetType()}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// converts from the old "rhmania" / "tengoku" format to the new "riq" format
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="beatmap">a deserialized .rhmania or .tengoku beatmap</param>
|
|
||||||
/// <returns>a .riq beatmap</returns>
|
|
||||||
public static DynamicBeatmap BeatmapConverter(Beatmap beatmap)
|
|
||||||
{
|
|
||||||
DynamicBeatmap dynamicBeatmap = new DynamicBeatmap();
|
|
||||||
dynamicBeatmap.bpm = beatmap.bpm;
|
|
||||||
dynamicBeatmap.musicVolume = beatmap.musicVolume;
|
|
||||||
dynamicBeatmap.firstBeatOffset = beatmap.firstBeatOffset;
|
|
||||||
|
|
||||||
Minigames.Minigame game;
|
|
||||||
Minigames.GameAction action;
|
|
||||||
System.Type type, pType;
|
|
||||||
foreach (var e in beatmap.entities)
|
|
||||||
{
|
|
||||||
game = EventCaller.instance.GetMinigame(e.datamodel.Split(0));
|
|
||||||
action = EventCaller.instance.GetGameAction(game, e.datamodel.Split(1));
|
|
||||||
|
|
||||||
if (game == null || action == null)
|
|
||||||
{
|
|
||||||
//FUTURE: attempt to convert to a new entity if a converter exists for this datamodel
|
|
||||||
UnityEngine.Debug.LogError($"Could not find game or gameaction from datamodel {e.datamodel} @ beat {e.beat}, skipping entity");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// Debug.Log($"{game.name} {action.displayName} @ beat {e.beat}");
|
|
||||||
|
|
||||||
Dictionary<string, dynamic> dynamicData = new Dictionary<string, dynamic>();
|
|
||||||
//check each param of the action
|
|
||||||
if (action.parameters != null)
|
|
||||||
{
|
|
||||||
foreach (var param in action.parameters)
|
|
||||||
{
|
|
||||||
if (e[param.propertyName] == null)
|
|
||||||
{
|
|
||||||
dynamicData.Add(param.propertyName, param.parameter);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
type = param.parameter.GetType();
|
|
||||||
pType = e[param.propertyName].GetType();
|
|
||||||
// Debug.Log($"adding parameter {param.propertyName} of type {type}");
|
|
||||||
if (!dynamicData.ContainsKey(param.propertyName))
|
|
||||||
{
|
|
||||||
if (pType == type)
|
|
||||||
{
|
|
||||||
dynamicData.Add(param.propertyName, e[param.propertyName]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (type == typeof(EntityTypes.Integer))
|
|
||||||
dynamicData.Add(param.propertyName, (int) e[param.propertyName]);
|
|
||||||
else if (type == typeof(EntityTypes.Float))
|
|
||||||
dynamicData.Add(param.propertyName, (float) e[param.propertyName]);
|
|
||||||
else if (type.IsEnum && param.propertyName != "ease")
|
|
||||||
dynamicData.Add(param.propertyName, (int) e[param.propertyName]);
|
|
||||||
else if (pType == typeof(Newtonsoft.Json.Linq.JObject))
|
|
||||||
dynamicData.Add(param.propertyName, e[param.propertyName].ToObject(type));
|
|
||||||
else
|
|
||||||
dynamicData.Add(param.propertyName, Convert.ChangeType(e[param.propertyName], type));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.LogWarning($"Property {param.propertyName} already exists in the entity's dynamic data! Skipping...");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dynamicBeatmap.entities.Add(new DynamicEntity()
|
|
||||||
{
|
|
||||||
beat = e.beat,
|
|
||||||
track = e.track,
|
|
||||||
length = e.length,
|
|
||||||
swing = e.swing,
|
|
||||||
datamodel = e.datamodel,
|
|
||||||
DynamicData = dynamicData
|
|
||||||
});
|
|
||||||
}
|
|
||||||
foreach (var tempoChange in beatmap.tempoChanges)
|
|
||||||
{
|
|
||||||
dynamicBeatmap.tempoChanges.Add(new TempoChange()
|
|
||||||
{
|
|
||||||
beat = tempoChange.beat,
|
|
||||||
length = tempoChange.length,
|
|
||||||
tempo = tempoChange.tempo
|
|
||||||
});
|
|
||||||
}
|
|
||||||
foreach (var volumeChange in beatmap.volumeChanges)
|
|
||||||
{
|
|
||||||
dynamicBeatmap.volumeChanges.Add(new VolumeChange()
|
|
||||||
{
|
|
||||||
beat = volumeChange.beat,
|
|
||||||
length = volumeChange.length,
|
|
||||||
volume = volumeChange.volume
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return dynamicBeatmap;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// FUTURE: converts from a karateka mania chart ("bor") to the "riq" format
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="bor">a rawtext .bor chart</param>
|
|
||||||
/// <returns>a .riq beatmap</returns>
|
|
||||||
/// <remarks>not implemented yet</remarks>
|
|
||||||
public static DynamicBeatmap KManiaBorConverter(String bor)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// updates an "riq" beatmap
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="beatmap">old beatmap</param>
|
|
||||||
/// <param name="version">version of old beatmap</param>
|
|
||||||
/// <returns>updated beatmap</returns>
|
|
||||||
/// <remarks>not implemented yet</remarks>
|
|
||||||
public static DynamicBeatmap BeatmapUpdater(DynamicBeatmap beatmap, int version)
|
|
||||||
{
|
|
||||||
return beatmap;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// processes an riq beatmap after it is loaded
|
|
||||||
/// </summary>
|
|
||||||
public void PostProcess()
|
|
||||||
{
|
|
||||||
DynamicBeatmap beatmapModel = new DynamicBeatmap();
|
|
||||||
Minigames.Minigame game;
|
|
||||||
Minigames.GameAction action;
|
|
||||||
System.Type type, pType;
|
|
||||||
foreach (var e in entities)
|
|
||||||
{
|
|
||||||
var gameName = e.datamodel.Split(0);
|
|
||||||
var actionName = e.datamodel.Split(1);
|
|
||||||
game = EventCaller.instance.GetMinigame(gameName);
|
|
||||||
if (game == null)
|
|
||||||
{
|
|
||||||
Debug.LogWarning($"Unknown game {gameName} found in remix.json! Adding game...");
|
|
||||||
game = new Minigames.Minigame(gameName, DisplayName(gameName) + " \n<color=#eb5454>[inferred from remix.json]</color>", "", false, false, new List<Minigames.GameAction>(), inferred: true);
|
|
||||||
EventCaller.instance.minigames.Add(game);
|
|
||||||
if (Editor.Editor.instance != null)
|
|
||||||
Editor.Editor.instance.AddIcon(game);
|
|
||||||
}
|
|
||||||
action = EventCaller.instance.GetGameAction(game, actionName);
|
|
||||||
if (action == null)
|
|
||||||
{
|
|
||||||
Debug.LogWarning($"Unknown action {gameName}/{actionName} found in remix.json! Adding action...");
|
|
||||||
var parameters = new List<Minigames.Param>();
|
|
||||||
foreach (var item in e.DynamicData)
|
|
||||||
{
|
|
||||||
var value = item.Value;
|
|
||||||
if (value.GetType() == typeof(long))
|
|
||||||
value = new EntityTypes.Integer(int.MinValue, int.MaxValue, (int)value);
|
|
||||||
else if (value.GetType() == typeof(double))
|
|
||||||
value = new EntityTypes.Float(float.NegativeInfinity, float.PositiveInfinity, (float)value);
|
|
||||||
parameters.Add(new Minigames.Param(item.Key, value, item.Key, "[inferred from remix.json]"));
|
|
||||||
}
|
|
||||||
action = new Minigames.GameAction(actionName, DisplayName(actionName), e.length, true, parameters);
|
|
||||||
game.actions.Add(action);
|
|
||||||
}
|
|
||||||
Dictionary<string, dynamic> dynamicData = new Dictionary<string, dynamic>();
|
|
||||||
//check each param of the action
|
|
||||||
if (action.parameters != null)
|
|
||||||
{
|
|
||||||
foreach (var param in action.parameters)
|
|
||||||
{
|
|
||||||
if (!dynamicData.ContainsKey(param.propertyName))
|
|
||||||
{
|
|
||||||
type = param.parameter.GetType();
|
|
||||||
//FUTURE: attempt to convert to a new entity if a converter exists for this datamodel
|
|
||||||
//add property if it doesn't exist
|
|
||||||
if (!e.DynamicData.ContainsKey(param.propertyName))
|
|
||||||
{
|
|
||||||
Debug.LogWarning($"Property {param.propertyName} does not exist in the entity's dynamic data! Adding...");
|
|
||||||
if (type == typeof(EntityTypes.Integer))
|
|
||||||
dynamicData.Add(param.propertyName, ((EntityTypes.Integer)param.parameter).val);
|
|
||||||
else if (type == typeof(EntityTypes.Float))
|
|
||||||
dynamicData.Add(param.propertyName, ((EntityTypes.Float)param.parameter).val);
|
|
||||||
else if (type.IsEnum && param.propertyName != "ease")
|
|
||||||
dynamicData.Add(param.propertyName, (int)param.parameter);
|
|
||||||
else
|
|
||||||
dynamicData.Add(param.propertyName, Convert.ChangeType(param.parameter, type));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
pType = e[param.propertyName].GetType();
|
|
||||||
if (pType == type)
|
|
||||||
{
|
|
||||||
dynamicData.Add(param.propertyName, e[param.propertyName]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (type == typeof(EntityTypes.Integer))
|
|
||||||
dynamicData.Add(param.propertyName, (int)e[param.propertyName]);
|
|
||||||
else if (type == typeof(EntityTypes.Float))
|
|
||||||
dynamicData.Add(param.propertyName, (float)e[param.propertyName]);
|
|
||||||
else if (type == typeof(EasingFunction.Ease) && pType == typeof(string))
|
|
||||||
dynamicData.Add(param.propertyName, Enum.Parse(typeof(EasingFunction.Ease), (string)e[param.propertyName]));
|
|
||||||
else if (type.IsEnum)
|
|
||||||
dynamicData.Add(param.propertyName, (int)e[param.propertyName]);
|
|
||||||
else if (pType == typeof(Newtonsoft.Json.Linq.JObject))
|
|
||||||
dynamicData.Add(param.propertyName, e[param.propertyName].ToObject(type));
|
|
||||||
else
|
|
||||||
dynamicData.Add(param.propertyName, Convert.ChangeType(e[param.propertyName], type));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.LogWarning($"Property {param.propertyName} already exists in the entity's dynamic data! Skipping...");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
e.DynamicData = dynamicData;
|
|
||||||
}
|
|
||||||
//go thru each property of the model beatmap and add any missing keyvalue pair
|
|
||||||
foreach (var prop in beatmapModel.properties)
|
|
||||||
{
|
|
||||||
if (!properties.ContainsKey(prop.Key))
|
|
||||||
{
|
|
||||||
properties.Add(prop.Key, prop.Value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private string DisplayName(string name)
|
|
||||||
{
|
|
||||||
// "gameName" -> "Game Name"
|
|
||||||
// "action name" -> "Action Name"
|
|
||||||
if (!name.Contains(" "))
|
|
||||||
name = SplitCamelCase(name);
|
|
||||||
System.Globalization.TextInfo textInfo = new System.Globalization.CultureInfo("en-US", false).TextInfo;
|
|
||||||
return textInfo.ToTitleCase(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
// https://stackoverflow.com/a/5796793
|
|
||||||
public static string SplitCamelCase(string str)
|
|
||||||
{
|
|
||||||
return Regex.Replace(
|
|
||||||
Regex.Replace(
|
|
||||||
str,
|
|
||||||
@"(\P{Ll})(\P{Ll}\p{Ll})",
|
|
||||||
"$1 $2"
|
|
||||||
),
|
|
||||||
@"(\p{Ll})(\P{Ll})",
|
|
||||||
"$1 $2"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: ca2149f692fc3d84ba6526d33c132822
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -26,7 +26,7 @@ namespace HeavenStudio.Util
|
||||||
this.clips = new List<SequenceClip>(clips);
|
this.clips = new List<SequenceClip>(clips);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MultiSound Play(float startBeat, params SequenceParams[] args)
|
public MultiSound Play(double startBeat, params SequenceParams[] args)
|
||||||
{
|
{
|
||||||
List<MultiSound.Sound> sounds = new List<MultiSound.Sound>();
|
List<MultiSound.Sound> sounds = new List<MultiSound.Sound>();
|
||||||
Dictionary<string, string> paramMaps = new Dictionary<string, string>();
|
Dictionary<string, string> paramMaps = new Dictionary<string, string>();
|
||||||
|
@ -34,11 +34,11 @@ namespace HeavenStudio.Util
|
||||||
foreach (SequenceClip clipdat in clips)
|
foreach (SequenceClip clipdat in clips)
|
||||||
{
|
{
|
||||||
string clip = clipdat.clip;
|
string clip = clipdat.clip;
|
||||||
float beat = clipdat.beat;
|
double beat = clipdat.beat;
|
||||||
float pitch = clipdat.pitch;
|
float pitch = clipdat.pitch;
|
||||||
float volume = clipdat.volume;
|
float volume = clipdat.volume;
|
||||||
bool looping = clipdat.looping;
|
bool looping = clipdat.looping;
|
||||||
float offset = clipdat.offset;
|
double offset = clipdat.offset;
|
||||||
if (args != null && clipdat.parameters != null && clipdat.parameters.Length > 0)
|
if (args != null && clipdat.parameters != null && clipdat.parameters.Length > 0)
|
||||||
{
|
{
|
||||||
paramMaps.Clear();
|
paramMaps.Clear();
|
||||||
|
|
|
@ -3,6 +3,8 @@ using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
using Starpelly;
|
using Starpelly;
|
||||||
|
using Jukebox;
|
||||||
|
using Jukebox.Legacy;
|
||||||
|
|
||||||
namespace HeavenStudio
|
namespace HeavenStudio
|
||||||
{
|
{
|
||||||
|
@ -14,10 +16,12 @@ namespace HeavenStudio
|
||||||
public float songBpm;
|
public float songBpm;
|
||||||
|
|
||||||
// The number of seconds for each song beat
|
// The number of seconds for each song beat
|
||||||
public float secPerBeat;
|
public float secPerBeat => (float)secPerBeatAsDouble;
|
||||||
|
public double secPerBeatAsDouble;
|
||||||
|
|
||||||
// The number of seconds for each song beat, inversely scaled to song pitch (higer pitch = shorter time)
|
// The number of seconds for each song beat, inversely scaled to song pitch (higer pitch = shorter time)
|
||||||
public float pitchedSecPerBeat => (secPerBeat / SongPitch);
|
public float pitchedSecPerBeat => (float)pitchedSecPerBeatAsDouble;
|
||||||
|
public double pitchedSecPerBeatAsDouble => (secPerBeat / SongPitch);
|
||||||
|
|
||||||
// Current song position, in seconds
|
// Current song position, in seconds
|
||||||
private double songPos; // for Conductor use only
|
private double songPos; // for Conductor use only
|
||||||
|
@ -31,12 +35,14 @@ namespace HeavenStudio
|
||||||
|
|
||||||
// Current time of the song
|
// Current time of the song
|
||||||
private double time;
|
private double time;
|
||||||
|
double dspTime, lastDspTime;
|
||||||
double lastAbsTime;
|
double absTime, lastAbsTime;
|
||||||
|
|
||||||
// the dspTime we started at
|
// the dspTime we started at
|
||||||
private double dspStartTime;
|
private double dspStart;
|
||||||
public double dspStartTimeAsDouble => dspStartTime;
|
private float dspStartTime => (float)dspStart;
|
||||||
|
public double dspStartTimeAsDouble => dspStart;
|
||||||
|
DateTime startTime;
|
||||||
|
|
||||||
//the beat we started at
|
//the beat we started at
|
||||||
private double startBeat;
|
private double startBeat;
|
||||||
|
@ -46,7 +52,7 @@ namespace HeavenStudio
|
||||||
public AudioSource musicSource;
|
public AudioSource musicSource;
|
||||||
|
|
||||||
// The offset to the first beat of the song in seconds
|
// The offset to the first beat of the song in seconds
|
||||||
public float firstBeatOffset;
|
public double firstBeatOffset;
|
||||||
|
|
||||||
// Conductor instance
|
// Conductor instance
|
||||||
public static Conductor instance;
|
public static Conductor instance;
|
||||||
|
@ -58,7 +64,7 @@ namespace HeavenStudio
|
||||||
public bool isPaused;
|
public bool isPaused;
|
||||||
|
|
||||||
// Last reported beat based on song position
|
// Last reported beat based on song position
|
||||||
private float lastReportedBeat = 0f;
|
private double lastReportedBeat = 0f;
|
||||||
|
|
||||||
// Metronome tick sound enabled
|
// Metronome tick sound enabled
|
||||||
public bool metronome = false;
|
public bool metronome = false;
|
||||||
|
@ -68,6 +74,8 @@ namespace HeavenStudio
|
||||||
private float timelinePitch = 1f;
|
private float timelinePitch = 1f;
|
||||||
private float minigamePitch = 1f;
|
private float minigamePitch = 1f;
|
||||||
public float SongPitch { get => isPaused ? 0f : (timelinePitch * minigamePitch); }
|
public float SongPitch { get => isPaused ? 0f : (timelinePitch * minigamePitch); }
|
||||||
|
private float musicScheduledPitch = 1f;
|
||||||
|
private double musicScheduledTime = 0;
|
||||||
|
|
||||||
public void SetTimelinePitch(float pitch)
|
public void SetTimelinePitch(float pitch)
|
||||||
{
|
{
|
||||||
|
@ -105,84 +113,60 @@ namespace HeavenStudio
|
||||||
|
|
||||||
public void Play(double beat)
|
public void Play(double beat)
|
||||||
{
|
{
|
||||||
|
if (isPlaying) return;
|
||||||
|
var chart = GameManager.instance.Beatmap;
|
||||||
|
double offset = chart.data.offset;
|
||||||
|
bool negativeOffset = offset < 0;
|
||||||
|
double dspTime = AudioSettings.dspTime;
|
||||||
GameManager.instance.SortEventsList();
|
GameManager.instance.SortEventsList();
|
||||||
bool negativeOffset = firstBeatOffset < 0f;
|
|
||||||
bool negativeStartTime = false;
|
|
||||||
|
|
||||||
// Debug.Log("starting playback @ beat " + beat + ", offset is " + firstBeatOffset);
|
double startPos = GetSongPosFromBeat(beat);
|
||||||
|
|
||||||
var startPos = GetSongPosFromBeat(beat);
|
|
||||||
if (negativeOffset)
|
|
||||||
{
|
|
||||||
time = startPos;
|
time = startPos;
|
||||||
|
|
||||||
|
if (musicSource.clip != null && startPos < musicSource.clip.length - offset)
|
||||||
|
{
|
||||||
|
// https://www.desmos.com/calculator/81ywfok6xk
|
||||||
|
double musicStartDelay = -offset - startPos;
|
||||||
|
if (musicStartDelay > 0)
|
||||||
|
{
|
||||||
|
musicSource.time = 0;
|
||||||
|
// this can break if the user changes pitch before the audio starts playing
|
||||||
|
musicScheduledTime = dspTime + musicStartDelay / SongPitch;
|
||||||
|
musicScheduledPitch = SongPitch;
|
||||||
|
musicSource.PlayScheduled(musicScheduledTime);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
negativeStartTime = startPos - firstBeatOffset < 0f;
|
musicSource.time = (float)-musicStartDelay;
|
||||||
|
musicSource.PlayScheduled(dspTime);
|
||||||
if (negativeStartTime)
|
}
|
||||||
time = startPos - firstBeatOffset;
|
|
||||||
else
|
|
||||||
time = startPos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: make this take into account past tempo changes
|
songPosBeat = GetBeatFromSongPos(time);
|
||||||
songPosBeat = GetBeatFromSongPos(time - firstBeatOffset);
|
startTime = DateTime.Now;
|
||||||
// Debug.Log("corrected starting playback @ beat " + songPosBeat);
|
lastAbsTime = (DateTime.Now - startTime).TotalSeconds;
|
||||||
|
lastDspTime = AudioSettings.dspTime;
|
||||||
|
dspStart = dspTime;
|
||||||
|
startBeat = songPosBeat;
|
||||||
|
|
||||||
isPlaying = true;
|
isPlaying = true;
|
||||||
isPaused = false;
|
isPaused = false;
|
||||||
|
|
||||||
if (SongPosLessThanClipLength(startPos))
|
|
||||||
{
|
|
||||||
if (negativeOffset)
|
|
||||||
{
|
|
||||||
var musicStartTime = startPos + firstBeatOffset;
|
|
||||||
|
|
||||||
if (musicStartTime < 0f)
|
|
||||||
{
|
|
||||||
musicSource.time = (float) startPos;
|
|
||||||
musicSource.PlayScheduled(AudioSettings.dspTime - firstBeatOffset / SongPitch);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
musicSource.time = (float) musicStartTime;
|
|
||||||
musicSource.PlayScheduled(AudioSettings.dspTime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (negativeStartTime)
|
|
||||||
{
|
|
||||||
musicSource.time = (float) startPos;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
musicSource.time = (float) startPos + firstBeatOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
musicSource.PlayScheduled(AudioSettings.dspTime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
lastAbsTime = Time.realtimeSinceStartupAsDouble;
|
|
||||||
dspStartTime = AudioSettings.dspTime;
|
|
||||||
startBeat = beat;
|
|
||||||
|
|
||||||
// GameManager.instance.SetCurrentEventToClosest(songPositionInBeats);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Pause()
|
public void Pause()
|
||||||
{
|
{
|
||||||
|
if (!isPlaying) return;
|
||||||
isPlaying = false;
|
isPlaying = false;
|
||||||
isPaused = true;
|
isPaused = true;
|
||||||
|
|
||||||
musicSource.Pause();
|
musicSource.Pause();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Stop(float time)
|
public void Stop(double time)
|
||||||
{
|
{
|
||||||
this.time = time;
|
this.time = time;
|
||||||
|
|
||||||
|
songPos = time;
|
||||||
songPosBeat = 0;
|
songPosBeat = 0;
|
||||||
|
|
||||||
isPlaying = false;
|
isPlaying = false;
|
||||||
|
@ -190,31 +174,61 @@ namespace HeavenStudio
|
||||||
|
|
||||||
musicSource.Stop();
|
musicSource.Stop();
|
||||||
}
|
}
|
||||||
float test;
|
|
||||||
|
double deltaTimeReal { get {
|
||||||
|
double ret = absTime - lastAbsTime;
|
||||||
|
lastAbsTime = absTime;
|
||||||
|
return ret;
|
||||||
|
}}
|
||||||
|
|
||||||
|
double deltaTimeDsp { get {
|
||||||
|
double ret = dspTime - lastDspTime;
|
||||||
|
lastDspTime = dspTime;
|
||||||
|
return ret;
|
||||||
|
}}
|
||||||
|
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
if (isPlaying)
|
if (isPlaying)
|
||||||
{
|
{
|
||||||
double absTime = Time.realtimeSinceStartupAsDouble;
|
if (AudioSettings.dspTime < musicScheduledTime && musicScheduledPitch != SongPitch)
|
||||||
double dt = (absTime - lastAbsTime) * SongPitch;
|
{
|
||||||
lastAbsTime = absTime;
|
if (SongPitch == 0f)
|
||||||
|
{
|
||||||
|
musicSource.Pause();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (musicScheduledPitch == 0f)
|
||||||
|
musicSource.UnPause();
|
||||||
|
musicScheduledPitch = SongPitch;
|
||||||
|
|
||||||
time += dt;
|
musicScheduledTime = (AudioSettings.dspTime + (-GameManager.instance.Beatmap.data.offset - songPositionAsDouble)/(double)SongPitch);
|
||||||
|
musicSource.SetScheduledStartTime(musicScheduledTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
absTime = (DateTime.Now - startTime).TotalSeconds;
|
||||||
|
dspTime = AudioSettings.dspTime - dspStart;
|
||||||
|
double dt = deltaTimeReal;
|
||||||
|
|
||||||
|
//todo: dspTime to sync with audio thread in case of drift
|
||||||
|
|
||||||
|
time += dt * SongPitch;
|
||||||
|
|
||||||
songPos = time;
|
songPos = time;
|
||||||
|
|
||||||
songPosBeat = GetBeatFromSongPos(songPos - firstBeatOffset);
|
songPosBeat = GetBeatFromSongPos(songPos - firstBeatOffset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void LateUpdate()
|
public void LateUpdate()
|
||||||
{
|
{
|
||||||
if (metronome && isPlaying)
|
if (metronome && isPlaying)
|
||||||
{
|
{
|
||||||
if (ReportBeat(ref lastReportedBeat))
|
if (ReportBeat(ref lastReportedBeat))
|
||||||
{
|
{
|
||||||
metronomeSound = Util.Jukebox.PlayOneShot("metronome", lastReportedBeat);
|
metronomeSound = Util.SoundByte.PlayOneShot("metronome", lastReportedBeat);
|
||||||
}
|
}
|
||||||
else if (songPositionInBeats < lastReportedBeat)
|
else if (songPositionInBeats < lastReportedBeat)
|
||||||
{
|
{
|
||||||
|
@ -231,7 +245,7 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool ReportBeat(ref float lastReportedBeat, float offset = 0, bool shiftBeatToOffset = true)
|
public bool ReportBeat(ref double lastReportedBeat, double offset = 0, bool shiftBeatToOffset = true)
|
||||||
{
|
{
|
||||||
bool result = songPositionInBeats + (shiftBeatToOffset ? offset : 0f) >= (lastReportedBeat) + 1f;
|
bool result = songPositionInBeats + (shiftBeatToOffset ? offset : 0f) >= (lastReportedBeat) + 1f;
|
||||||
if (result)
|
if (result)
|
||||||
|
@ -250,15 +264,15 @@ namespace HeavenStudio
|
||||||
return Mathf.Repeat((songPositionInBeats / length) + beatOffset, 1);
|
return Mathf.Repeat((songPositionInBeats / length) + beatOffset, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetPositionFromBeat(float startBeat, float length)
|
public float GetPositionFromBeat(double startBeat, double length)
|
||||||
{
|
{
|
||||||
float a = Mathp.Normalize(songPositionInBeats, startBeat, startBeat + length);
|
float a = Mathp.Normalize(songPositionInBeats, (float)startBeat, (float)(startBeat + length));
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetBeatFromPosition(float position, float startBeat, float length)
|
public float GetBeatFromPosition(float position, float startBeat, float length)
|
||||||
{
|
{
|
||||||
return Mathp.DeNormalize(position, startBeat, startBeat + length);
|
return Mathp.DeNormalize(position, (float)startBeat, (float)(startBeat + length));
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetPositionFromMargin(float targetBeat, float margin)
|
public float GetPositionFromMargin(float targetBeat, float margin)
|
||||||
|
@ -271,26 +285,26 @@ namespace HeavenStudio
|
||||||
return GetBeatFromPosition(position, targetBeat - margin, margin);
|
return GetBeatFromPosition(position, targetBeat - margin, margin);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<DynamicBeatmap.TempoChange> GetSortedTempoChanges(DynamicBeatmap chart)
|
private List<RiqEntity> GetSortedTempoChanges()
|
||||||
{
|
{
|
||||||
GameManager.instance.SortEventsList();
|
GameManager.instance.SortEventsList();
|
||||||
return GameManager.instance.Beatmap.tempoChanges;
|
return GameManager.instance.Beatmap.TempoChanges;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetBpmAtBeat(float beat)
|
public float GetBpmAtBeat(double beat)
|
||||||
{
|
{
|
||||||
var chart = GameManager.instance.Beatmap;
|
var chart = GameManager.instance.Beatmap;
|
||||||
if (chart.tempoChanges.Count == 0)
|
if (chart.TempoChanges.Count == 0)
|
||||||
return chart.bpm;
|
return 120f;
|
||||||
float bpm = chart.bpm;
|
float bpm = chart.TempoChanges[0]["tempo"];
|
||||||
|
|
||||||
foreach (DynamicBeatmap.TempoChange t in chart.tempoChanges)
|
foreach (RiqEntity t in chart.TempoChanges)
|
||||||
{
|
{
|
||||||
if (t.beat > beat)
|
if (t.beat > beat)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
bpm = t.tempo;
|
bpm = t["tempo"];
|
||||||
}
|
}
|
||||||
|
|
||||||
return bpm;
|
return bpm;
|
||||||
|
@ -299,13 +313,13 @@ namespace HeavenStudio
|
||||||
public double GetSongPosFromBeat(double beat)
|
public double GetSongPosFromBeat(double beat)
|
||||||
{
|
{
|
||||||
var chart = GameManager.instance.Beatmap;
|
var chart = GameManager.instance.Beatmap;
|
||||||
float bpm = chart.bpm;
|
float bpm = 120f;
|
||||||
|
|
||||||
double counter = 0f;
|
double counter = 0f;
|
||||||
|
|
||||||
float lastTempoChangeBeat = 0f;
|
double lastTempoChangeBeat = 0f;
|
||||||
|
|
||||||
foreach (DynamicBeatmap.TempoChange t in chart.tempoChanges)
|
foreach (RiqEntity t in chart.TempoChanges)
|
||||||
{
|
{
|
||||||
if (t.beat > beat)
|
if (t.beat > beat)
|
||||||
{
|
{
|
||||||
|
@ -313,7 +327,7 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
|
|
||||||
counter += (t.beat - lastTempoChangeBeat) * 60/bpm;
|
counter += (t.beat - lastTempoChangeBeat) * 60/bpm;
|
||||||
bpm = t.tempo;
|
bpm = t["tempo"];
|
||||||
lastTempoChangeBeat = t.beat;
|
lastTempoChangeBeat = t.beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,9 +350,9 @@ namespace HeavenStudio
|
||||||
{
|
{
|
||||||
double lastTempoChangeBeat = 0f;
|
double lastTempoChangeBeat = 0f;
|
||||||
double counterSeconds = -firstBeatOffset;
|
double counterSeconds = -firstBeatOffset;
|
||||||
float lastBpm = GameManager.instance.Beatmap.bpm;
|
float lastBpm = 120f;
|
||||||
|
|
||||||
foreach (DynamicBeatmap.TempoChange t in GameManager.instance.Beatmap.tempoChanges)
|
foreach (RiqEntity t in GameManager.instance.Beatmap.TempoChanges)
|
||||||
{
|
{
|
||||||
double beatToNext = t.beat - lastTempoChangeBeat;
|
double beatToNext = t.beat - lastTempoChangeBeat;
|
||||||
double secToNext = BeatsToSecs(beatToNext, lastBpm);
|
double secToNext = BeatsToSecs(beatToNext, lastBpm);
|
||||||
|
@ -348,7 +362,7 @@ namespace HeavenStudio
|
||||||
break;
|
break;
|
||||||
|
|
||||||
lastTempoChangeBeat = t.beat;
|
lastTempoChangeBeat = t.beat;
|
||||||
lastBpm = t.tempo;
|
lastBpm = t["tempo"];
|
||||||
counterSeconds = nextSecs;
|
counterSeconds = nextSecs;
|
||||||
}
|
}
|
||||||
return lastTempoChangeBeat + SecsToBeats(seconds - counterSeconds, lastBpm);
|
return lastTempoChangeBeat + SecsToBeats(seconds - counterSeconds, lastBpm);
|
||||||
|
@ -356,7 +370,7 @@ namespace HeavenStudio
|
||||||
//
|
//
|
||||||
|
|
||||||
// convert real seconds to beats
|
// convert real seconds to beats
|
||||||
public float GetRestFromRealTime(float seconds)
|
public double GetRestFromRealTime(double seconds)
|
||||||
{
|
{
|
||||||
return seconds/pitchedSecPerBeat;
|
return seconds/pitchedSecPerBeat;
|
||||||
}
|
}
|
||||||
|
@ -364,7 +378,7 @@ namespace HeavenStudio
|
||||||
public void SetBpm(float bpm)
|
public void SetBpm(float bpm)
|
||||||
{
|
{
|
||||||
this.songBpm = bpm;
|
this.songBpm = bpm;
|
||||||
secPerBeat = 60f / songBpm;
|
secPerBeatAsDouble = 60.0 / songBpm;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetVolume(float percent)
|
public void SetVolume(float percent)
|
||||||
|
@ -374,22 +388,19 @@ namespace HeavenStudio
|
||||||
|
|
||||||
public float SongLengthInBeats()
|
public float SongLengthInBeats()
|
||||||
{
|
{
|
||||||
if (!musicSource.clip) return 0;
|
return (float)SongLengthInBeatsAsDouble();
|
||||||
return (float) GetBeatFromSongPos(musicSource.clip.length);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SongPosLessThanClipLength(float t)
|
public double SongLengthInBeatsAsDouble()
|
||||||
{
|
{
|
||||||
if (musicSource.clip != null)
|
if (!musicSource.clip) return 0;
|
||||||
return t < musicSource.clip.length;
|
return GetBeatFromSongPos(musicSource.clip.length - firstBeatOffset);
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SongPosLessThanClipLength(double t)
|
public bool SongPosLessThanClipLength(double t)
|
||||||
{
|
{
|
||||||
if (musicSource.clip != null)
|
if (musicSource.clip != null)
|
||||||
return t < musicSource.clip.length;
|
return t < musicSource.clip.length - firstBeatOffset;
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,12 +65,12 @@ namespace HeavenStudio
|
||||||
|
|
||||||
int minus = 0;
|
int minus = 0;
|
||||||
|
|
||||||
if (GameManager.instance.Beatmap.entities.Count > 0)
|
if (GameManager.instance.Beatmap.Entities.Count > 0)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentEvent - 1 >= 0) minus = 1;
|
if (GameManager.instance.currentEvent - 1 >= 0) minus = 1;
|
||||||
|
|
||||||
SetText(currEvent, $"CurrentEvent: {GameManager.instance.Beatmap.entities[GameManager.instance.currentEvent - minus].datamodel}");
|
SetText(currEvent, $"CurrentEvent: {GameManager.instance.Beatmap.Entities[GameManager.instance.currentEvent - minus].datamodel}");
|
||||||
SetText(eventLength, $"Event Length: {GameManager.instance.Beatmap.entities[GameManager.instance.currentEvent - minus].length}");
|
SetText(eventLength, $"Event Length: {GameManager.instance.Beatmap.Entities[GameManager.instance.currentEvent - minus].length}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,13 +3,15 @@ using System.Linq;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Events;
|
using UnityEngine.Events;
|
||||||
|
using Jukebox;
|
||||||
|
using Jukebox.Legacy;
|
||||||
|
|
||||||
namespace HeavenStudio
|
namespace HeavenStudio
|
||||||
{
|
{
|
||||||
public class EventCaller : MonoBehaviour
|
public class EventCaller : MonoBehaviour
|
||||||
{
|
{
|
||||||
public Transform GamesHolder;
|
public Transform GamesHolder;
|
||||||
public DynamicBeatmap.DynamicEntity currentEntity = new DynamicBeatmap.DynamicEntity();
|
public RiqEntity currentEntity = new RiqEntity();
|
||||||
public string currentSwitchGame;
|
public string currentSwitchGame;
|
||||||
|
|
||||||
public delegate void EventCallback();
|
public delegate void EventCallback();
|
||||||
|
@ -37,15 +39,15 @@ namespace HeavenStudio
|
||||||
{
|
{
|
||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
currentEntity = new DynamicBeatmap.DynamicEntity();
|
currentEntity = new RiqEntity();
|
||||||
|
|
||||||
Minigames.Init(this);
|
Minigames.Init(this);
|
||||||
|
|
||||||
List<Minigames.Minigame> minigamesInBeatmap = new List<Minigames.Minigame>();
|
List<Minigames.Minigame> minigamesInBeatmap = new List<Minigames.Minigame>();
|
||||||
for (int i = 0; i < GameManager.instance.Beatmap.entities.Count; i++)
|
for (int i = 0; i < GameManager.instance.Beatmap.Entities.Count; i++)
|
||||||
{
|
{
|
||||||
//go through every entity in the timeline and add the game that they're from to the minigamesInBeatmap list (ignore entities from FX only categories, i.e. Game Manager and Count-Ins)
|
//go through every entity in the timeline and add the game that they're from to the minigamesInBeatmap list (ignore entities from FX only categories, i.e. Game Manager and Count-Ins)
|
||||||
Minigames.Minigame game = GetMinigame(GameManager.instance.Beatmap.entities[i].datamodel.Split('/')[0]);
|
Minigames.Minigame game = GetMinigame(GameManager.instance.Beatmap.Entities[i].datamodel.Split('/')[0]);
|
||||||
if (!minigamesInBeatmap.Contains(game) && !FXOnlyGames().Contains(game))
|
if (!minigamesInBeatmap.Contains(game) && !FXOnlyGames().Contains(game))
|
||||||
{
|
{
|
||||||
minigamesInBeatmap.Add(game);
|
minigamesInBeatmap.Add(game);
|
||||||
|
@ -63,7 +65,7 @@ namespace HeavenStudio
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CallEvent(DynamicBeatmap.DynamicEntity entity, bool gameActive)
|
public void CallEvent(RiqEntity entity, bool gameActive)
|
||||||
{
|
{
|
||||||
string[] details = entity.datamodel.Split('/');
|
string[] details = entity.datamodel.Split('/');
|
||||||
Minigames.Minigame game = minigames.Find(c => c.name == details[0]);
|
Minigames.Minigame game = minigames.Find(c => c.name == details[0]);
|
||||||
|
@ -89,7 +91,7 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CallPreEvent(DynamicBeatmap.DynamicEntity entity)
|
public void CallPreEvent(RiqEntity entity)
|
||||||
{
|
{
|
||||||
string[] details = entity.datamodel.Split('/');
|
string[] details = entity.datamodel.Split('/');
|
||||||
Minigames.Minigame game = minigames.Find(c => c.name == details[0]);
|
Minigames.Minigame game = minigames.Find(c => c.name == details[0]);
|
||||||
|
@ -106,10 +108,10 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<DynamicBeatmap.DynamicEntity> GetAllInGameManagerList(string gameName, string[] include)
|
public static List<RiqEntity> GetAllInGameManagerList(string gameName, string[] include)
|
||||||
{
|
{
|
||||||
List<DynamicBeatmap.DynamicEntity> temp1 = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel.Split('/')[0] == gameName);
|
List<RiqEntity> temp1 = GameManager.instance.Beatmap.Entities.FindAll(c => c.datamodel.Split('/')[0] == gameName);
|
||||||
List<DynamicBeatmap.DynamicEntity> temp2 = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> temp2 = new List<RiqEntity>();
|
||||||
foreach (string s in include)
|
foreach (string s in include)
|
||||||
{
|
{
|
||||||
temp2.AddRange(temp1.FindAll(c => c.datamodel.Split('/')[1].Equals(s)));
|
temp2.AddRange(temp1.FindAll(c => c.datamodel.Split('/')[1].Equals(s)));
|
||||||
|
@ -117,10 +119,10 @@ namespace HeavenStudio
|
||||||
return temp2;
|
return temp2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<DynamicBeatmap.DynamicEntity> GetAllInGameManagerListExclude(string gameName, string[] exclude)
|
public static List<RiqEntity> GetAllInGameManagerListExclude(string gameName, string[] exclude)
|
||||||
{
|
{
|
||||||
List<DynamicBeatmap.DynamicEntity> temp1 = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel.Split('/')[0] == gameName);
|
List<RiqEntity> temp1 = GameManager.instance.Beatmap.Entities.FindAll(c => c.datamodel.Split('/')[0] == gameName);
|
||||||
List<DynamicBeatmap.DynamicEntity> temp2 = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> temp2 = new List<RiqEntity>();
|
||||||
foreach (string s in exclude)
|
foreach (string s in exclude)
|
||||||
{
|
{
|
||||||
temp2.AddRange(temp1.FindAll(c => !c.datamodel.Split('/')[1].Equals(s)));
|
temp2.AddRange(temp1.FindAll(c => !c.datamodel.Split('/')[1].Equals(s)));
|
||||||
|
|
|
@ -4,6 +4,8 @@ using UnityEngine;
|
||||||
|
|
||||||
using HeavenStudio.Util;
|
using HeavenStudio.Util;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Jukebox;
|
||||||
|
using Jukebox.Legacy;
|
||||||
|
|
||||||
namespace HeavenStudio
|
namespace HeavenStudio
|
||||||
{
|
{
|
||||||
|
@ -20,9 +22,9 @@ namespace HeavenStudio
|
||||||
Z
|
Z
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<DynamicBeatmap.DynamicEntity> positionEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> positionEvents = new();
|
||||||
private List<DynamicBeatmap.DynamicEntity> rotationEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> rotationEvents = new();
|
||||||
private List<DynamicBeatmap.DynamicEntity> shakeEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> shakeEvents = new();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
default cam position, for quick-resetting
|
default cam position, for quick-resetting
|
||||||
|
@ -77,7 +79,7 @@ namespace HeavenStudio
|
||||||
rotEluerLast = defaultRotEluer;
|
rotEluerLast = defaultRotEluer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnBeatChanged(float beat)
|
public void OnBeatChanged(double beat)
|
||||||
{
|
{
|
||||||
ResetTransforms();
|
ResetTransforms();
|
||||||
ResetAdditionalTransforms();
|
ResetAdditionalTransforms();
|
||||||
|
@ -128,7 +130,7 @@ namespace HeavenStudio
|
||||||
float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length);
|
float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length);
|
||||||
if (prog >= 0f)
|
if (prog >= 0f)
|
||||||
{
|
{
|
||||||
EasingFunction.Function func = EasingFunction.GetEasingFunction((EasingFunction.Ease) e["ease"]);
|
Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease) e["ease"]);
|
||||||
switch (e["axis"])
|
switch (e["axis"])
|
||||||
{
|
{
|
||||||
case (int) CameraAxis.X:
|
case (int) CameraAxis.X:
|
||||||
|
@ -176,7 +178,7 @@ namespace HeavenStudio
|
||||||
float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length);
|
float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length);
|
||||||
if (prog >= 0f)
|
if (prog >= 0f)
|
||||||
{
|
{
|
||||||
EasingFunction.Function func = EasingFunction.GetEasingFunction((EasingFunction.Ease) e["ease"]);
|
Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease) e["ease"]);
|
||||||
switch (e["axis"])
|
switch (e["axis"])
|
||||||
{
|
{
|
||||||
case (int) CameraAxis.X:
|
case (int) CameraAxis.X:
|
||||||
|
|
|
@ -9,6 +9,8 @@ using System.Text;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Audio;
|
using UnityEngine.Audio;
|
||||||
|
|
||||||
|
using Jukebox;
|
||||||
|
|
||||||
namespace HeavenStudio
|
namespace HeavenStudio
|
||||||
{
|
{
|
||||||
public class GameInitializer : MonoBehaviour
|
public class GameInitializer : MonoBehaviour
|
||||||
|
@ -34,9 +36,6 @@ namespace HeavenStudio
|
||||||
public bool playOnStart = false;
|
public bool playOnStart = false;
|
||||||
public bool fromCmd = false;
|
public bool fromCmd = false;
|
||||||
|
|
||||||
string json = "";
|
|
||||||
string ext = "";
|
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
string input = "";
|
string input = "";
|
||||||
|
@ -98,11 +97,8 @@ namespace HeavenStudio
|
||||||
|
|
||||||
if (editorGO == null)
|
if (editorGO == null)
|
||||||
{
|
{
|
||||||
OpenCmdRemix(input);
|
bool success = OpenCmdRemix(input);
|
||||||
Debug.Log(json);
|
gameManager.Init(success);
|
||||||
gameManager.txt = json;
|
|
||||||
gameManager.ext = ext;
|
|
||||||
gameManager.Init();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -110,44 +106,18 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OpenCmdRemix(string path)
|
public bool OpenCmdRemix(string path)
|
||||||
{
|
{
|
||||||
if (path == string.Empty) return;
|
try
|
||||||
if (!File.Exists(path)) return;
|
|
||||||
byte[] MusicBytes;
|
|
||||||
bool loadedMusic = false;
|
|
||||||
string extension = path.GetExtension();
|
|
||||||
|
|
||||||
using var zipFile = File.Open(path, FileMode.Open);
|
|
||||||
using var archive = new ZipArchive(zipFile, ZipArchiveMode.Read);
|
|
||||||
|
|
||||||
foreach (var entry in archive.Entries)
|
|
||||||
switch (entry.Name)
|
|
||||||
{
|
{
|
||||||
case "remix.json":
|
string tmpDir = RiqFileHandler.ExtractRiq(path);
|
||||||
|
Debug.Log("Imported RIQ successfully!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (System.Exception e)
|
||||||
{
|
{
|
||||||
using var stream = entry.Open();
|
Debug.Log($"Error importing RIQ: {e.Message}");
|
||||||
using var reader = new StreamReader(stream);
|
return false;
|
||||||
json = reader.ReadToEnd();
|
|
||||||
ext = extension;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case "song.ogg":
|
|
||||||
{
|
|
||||||
using var stream = entry.Open();
|
|
||||||
using var memoryStream = new MemoryStream();
|
|
||||||
stream.CopyTo(memoryStream);
|
|
||||||
MusicBytes = memoryStream.ToArray();
|
|
||||||
Conductor.instance.musicSource.clip = OggVorbis.VorbisPlugin.ToAudioClip(MusicBytes, "music");
|
|
||||||
loadedMusic = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!loadedMusic)
|
|
||||||
{
|
|
||||||
Conductor.instance.musicSource.clip = null;
|
|
||||||
MusicBytes = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@ using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
using Starpelly;
|
using Starpelly;
|
||||||
|
using Jukebox;
|
||||||
|
using Jukebox.Legacy;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using HeavenStudio.Games;
|
using HeavenStudio.Games;
|
||||||
using HeavenStudio.Common;
|
using HeavenStudio.Common;
|
||||||
|
@ -14,7 +16,7 @@ namespace HeavenStudio
|
||||||
public class GameManager : MonoBehaviour
|
public class GameManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
[Header("Lists")]
|
[Header("Lists")]
|
||||||
[NonSerialized] public DynamicBeatmap Beatmap = new DynamicBeatmap();
|
[NonSerialized] public RiqBeatmap Beatmap = new();
|
||||||
private List<GameObject> preloadedGames = new List<GameObject>();
|
private List<GameObject> preloadedGames = new List<GameObject>();
|
||||||
[NonSerialized] public List<GameObject> SoundObjects = new List<GameObject>();
|
[NonSerialized] public List<GameObject> SoundObjects = new List<GameObject>();
|
||||||
|
|
||||||
|
@ -35,22 +37,22 @@ namespace HeavenStudio
|
||||||
|
|
||||||
[NonSerialized] public int currentEvent, currentTempoEvent, currentVolumeEvent, currentSectionEvent,
|
[NonSerialized] public int currentEvent, currentTempoEvent, currentVolumeEvent, currentSectionEvent,
|
||||||
currentPreEvent, currentPreSwitch, currentPreSequence;
|
currentPreEvent, currentPreSwitch, currentPreSequence;
|
||||||
[NonSerialized] public float endBeat;
|
[NonSerialized] public double endBeat;
|
||||||
[NonSerialized] public float startOffset;
|
[NonSerialized] public float startOffset;
|
||||||
[NonSerialized] public bool playOnStart;
|
[NonSerialized] public bool playOnStart;
|
||||||
[NonSerialized] public float startBeat;
|
[NonSerialized] public double startBeat;
|
||||||
[NonSerialized] public GameObject currentGameO;
|
[NonSerialized] public GameObject currentGameO;
|
||||||
[NonSerialized] public bool autoplay;
|
[NonSerialized] public bool autoplay;
|
||||||
[NonSerialized] public bool canInput = true;
|
[NonSerialized] public bool canInput = true;
|
||||||
[NonSerialized] public DynamicBeatmap.ChartSection currentSection, nextSection;
|
[NonSerialized] public RiqEntity currentSection, nextSection;
|
||||||
public float sectionProgress { get; private set; }
|
public double sectionProgress { get; private set; }
|
||||||
|
|
||||||
public event Action<float> onBeatChanged;
|
public event Action<double> onBeatChanged;
|
||||||
public event Action<DynamicBeatmap.ChartSection> onSectionChange;
|
public event Action<RiqEntity> onSectionChange;
|
||||||
|
|
||||||
public int BeatmapEntities()
|
public int BeatmapEntities()
|
||||||
{
|
{
|
||||||
return Beatmap.entities.Count + Beatmap.tempoChanges.Count + Beatmap.volumeChanges.Count + Beatmap.beatmapSections.Count;
|
return Beatmap.Entities.Count + Beatmap.TempoChanges.Count + Beatmap.VolumeChanges.Count + Beatmap.SectionMarkers.Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static GameManager instance { get; private set; }
|
public static GameManager instance { get; private set; }
|
||||||
|
@ -101,7 +103,7 @@ namespace HeavenStudio
|
||||||
instance = this;
|
instance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init()
|
public void Init(bool preLoaded = false)
|
||||||
{
|
{
|
||||||
currentPreEvent= 0;
|
currentPreEvent= 0;
|
||||||
currentPreSwitch = 0;
|
currentPreSwitch = 0;
|
||||||
|
@ -113,9 +115,9 @@ namespace HeavenStudio
|
||||||
eventCaller = this.gameObject.AddComponent<EventCaller>();
|
eventCaller = this.gameObject.AddComponent<EventCaller>();
|
||||||
eventCaller.GamesHolder = GamesHolder.transform;
|
eventCaller.GamesHolder = GamesHolder.transform;
|
||||||
eventCaller.Init();
|
eventCaller.Init();
|
||||||
Conductor.instance.SetBpm(Beatmap.bpm);
|
Conductor.instance.SetBpm(120f);
|
||||||
Conductor.instance.SetVolume(Beatmap.musicVolume);
|
Conductor.instance.SetVolume(100f);
|
||||||
Conductor.instance.firstBeatOffset = Beatmap.firstBeatOffset;
|
Conductor.instance.firstBeatOffset = Beatmap.data.offset;
|
||||||
|
|
||||||
// note: serialize this shit in the inspector //
|
// note: serialize this shit in the inspector //
|
||||||
GameObject textbox = Instantiate(Resources.Load<GameObject>("Prefabs/Common/Textbox"));
|
GameObject textbox = Instantiate(Resources.Load<GameObject>("Prefabs/Common/Textbox"));
|
||||||
|
@ -134,9 +136,9 @@ namespace HeavenStudio
|
||||||
/////
|
/////
|
||||||
|
|
||||||
|
|
||||||
if (txt != null && ext != null && txt.Length != 0 && ext.Length != 0)
|
if (preLoaded)
|
||||||
{
|
{
|
||||||
LoadRemix(txt, ext);
|
LoadRemix(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -145,10 +147,10 @@ namespace HeavenStudio
|
||||||
|
|
||||||
SortEventsList();
|
SortEventsList();
|
||||||
|
|
||||||
if (Beatmap.entities.Count >= 1)
|
if (Beatmap.Entities.Count >= 1)
|
||||||
{
|
{
|
||||||
SetCurrentGame(Beatmap.entities[0].datamodel.Split(0));
|
SetCurrentGame(Beatmap.Entities[0].datamodel.Split(0));
|
||||||
SetGame(Beatmap.entities[0].datamodel.Split(0));
|
SetGame(Beatmap.Entities[0].datamodel.Split(0));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -163,52 +165,68 @@ namespace HeavenStudio
|
||||||
|
|
||||||
public void NewRemix()
|
public void NewRemix()
|
||||||
{
|
{
|
||||||
Beatmap = new DynamicBeatmap();
|
Beatmap = new("1", "HeavenStudio");
|
||||||
Beatmap.bpm = 120f;
|
Beatmap.data.properties = Minigames.propertiesModel;
|
||||||
Beatmap.musicVolume = 100;
|
Beatmap.AddNewTempoChange(0, 120f);
|
||||||
Beatmap.firstBeatOffset = 0f;
|
Beatmap.AddNewVolumeChange(0, 100f);
|
||||||
|
Beatmap.data.offset = 0f;
|
||||||
Conductor.instance.musicSource.clip = null;
|
Conductor.instance.musicSource.clip = null;
|
||||||
|
RiqFileHandler.WriteRiq(Beatmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadRemix(string json = "", string type = "riq", int version = 0)
|
public IEnumerator LoadMusic()
|
||||||
{
|
{
|
||||||
|
IEnumerator load = RiqFileHandler.LoadSong();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
object current = load.Current;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (load.MoveNext() == false)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
current = load.Current;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"Failed to load music: {e.Message}");
|
||||||
|
GlobalGameManager.ShowErrorMessage("Error Loading Music", e.Message + "\n\n" + e.StackTrace);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
yield return current;
|
||||||
|
}
|
||||||
|
Conductor.instance.musicSource.clip = RiqFileHandler.StreamedAudioClip;
|
||||||
|
}
|
||||||
|
|
||||||
if (json != "")
|
public void LoadRemix(bool editor = false)
|
||||||
{
|
{
|
||||||
switch (type)
|
try
|
||||||
{
|
{
|
||||||
case "tengoku":
|
Beatmap = RiqFileHandler.ReadRiq();
|
||||||
case "rhmania":
|
|
||||||
Beatmap toConvert = JsonConvert.DeserializeObject<Beatmap>(json);
|
|
||||||
Beatmap = DynamicBeatmap.BeatmapConverter(toConvert);
|
|
||||||
break;
|
|
||||||
case "riq":
|
|
||||||
Beatmap = JsonConvert.DeserializeObject<DynamicBeatmap>(json);
|
|
||||||
Beatmap.PostProcess();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
NewRemix();
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
catch (Exception e)
|
||||||
else
|
|
||||||
{
|
{
|
||||||
NewRemix();
|
Debug.LogError($"Failed to load remix: {e.Message}");
|
||||||
|
GlobalGameManager.ShowErrorMessage("Error Loading RIQ", e.Message + "\n\n" + e.StackTrace);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
if (!editor)
|
||||||
|
StartCoroutine(LoadMusic());
|
||||||
SortEventsList();
|
SortEventsList();
|
||||||
Conductor.instance.SetBpm(Beatmap.bpm);
|
Conductor.instance.SetBpm(Beatmap.TempoChanges[0]["tempo"]);
|
||||||
Conductor.instance.SetVolume(Beatmap.musicVolume);
|
Conductor.instance.SetVolume(Beatmap.VolumeChanges[0]["volume"]);
|
||||||
Conductor.instance.firstBeatOffset = Beatmap.firstBeatOffset;
|
Conductor.instance.firstBeatOffset = Beatmap.data.offset;
|
||||||
if (!playOnStart)
|
if (!playOnStart)
|
||||||
{
|
{
|
||||||
Stop(0);
|
Stop(0);
|
||||||
}
|
}
|
||||||
SetCurrentEventToClosest(0);
|
SetCurrentEventToClosest(0);
|
||||||
|
|
||||||
if (Beatmap.entities.Count >= 1)
|
if (Beatmap.Entities.Count >= 1)
|
||||||
{
|
{
|
||||||
SetCurrentGame(Beatmap.entities[0].datamodel.Split(0));
|
SetCurrentGame(Beatmap.Entities[0].datamodel.Split(0));
|
||||||
SetGame(Beatmap.entities[0].datamodel.Split(0));
|
SetGame(Beatmap.Entities[0].datamodel.Split(0));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -241,14 +259,14 @@ namespace HeavenStudio
|
||||||
{
|
{
|
||||||
//seek ahead to preload games that have assetbundles
|
//seek ahead to preload games that have assetbundles
|
||||||
//check game switches first
|
//check game switches first
|
||||||
var gameSwitchs = Beatmap.entities.FindAll(c => c.datamodel.Split(1) == "switchGame");
|
var gameSwitchs = Beatmap.Entities.FindAll(c => c.datamodel.Split(1) == "switchGame");
|
||||||
if (currentPreSwitch < gameSwitchs.Count && currentPreSwitch >= 0)
|
if (currentPreSwitch < gameSwitchs.Count && currentPreSwitch >= 0)
|
||||||
{
|
{
|
||||||
if (start + seekTime >= gameSwitchs[currentPreSwitch].beat)
|
if (start + seekTime >= gameSwitchs[currentPreSwitch].beat)
|
||||||
{
|
{
|
||||||
string gameName = gameSwitchs[currentPreSwitch].datamodel.Split(2);
|
string gameName = gameSwitchs[currentPreSwitch].datamodel.Split(2);
|
||||||
var inf = GetGameInfo(gameName);
|
var inf = GetGameInfo(gameName);
|
||||||
if (inf.usesAssetBundle && !inf.AssetsLoaded)
|
if (inf != null && inf.usesAssetBundle && !inf.AssetsLoaded)
|
||||||
{
|
{
|
||||||
Debug.Log($"ASYNC loading assetbundles for game {gameName}");
|
Debug.Log($"ASYNC loading assetbundles for game {gameName}");
|
||||||
StartCoroutine(inf.LoadCommonAssetBundleAsync());
|
StartCoroutine(inf.LoadCommonAssetBundleAsync());
|
||||||
|
@ -258,18 +276,18 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//then check game entities
|
//then check game entities
|
||||||
List<float> entities = Beatmap.entities.Select(c => c.beat).ToList();
|
List<double> entities = Beatmap.Entities.Select(c => c.beat).ToList();
|
||||||
if (currentPreEvent < Beatmap.entities.Count && currentPreEvent >= 0)
|
if (currentPreEvent < Beatmap.Entities.Count && currentPreEvent >= 0)
|
||||||
{
|
{
|
||||||
if (start + seekTime >= entities[currentPreEvent])
|
if (start + seekTime >= entities[currentPreEvent])
|
||||||
{
|
{
|
||||||
var entitiesAtSameBeat = Beatmap.entities.FindAll(c => c.beat == Beatmap.entities[currentPreEvent].beat && !EventCaller.FXOnlyGames().Contains(EventCaller.instance.GetMinigame(c.datamodel.Split('/')[0])));
|
var entitiesAtSameBeat = Beatmap.Entities.FindAll(c => c.beat == Beatmap.Entities[currentPreEvent].beat && !EventCaller.FXOnlyGames().Contains(EventCaller.instance.GetMinigame(c.datamodel.Split('/')[0])));
|
||||||
SortEventsByPriority(entitiesAtSameBeat);
|
SortEventsByPriority(entitiesAtSameBeat);
|
||||||
foreach (DynamicBeatmap.DynamicEntity entity in entitiesAtSameBeat)
|
foreach (RiqEntity entity in entitiesAtSameBeat)
|
||||||
{
|
{
|
||||||
string gameName = entity.datamodel.Split('/')[0];
|
string gameName = entity.datamodel.Split('/')[0];
|
||||||
var inf = GetGameInfo(gameName);
|
var inf = GetGameInfo(gameName);
|
||||||
if (inf.usesAssetBundle && !inf.AssetsLoaded)
|
if (inf != null && inf.usesAssetBundle && !inf.AssetsLoaded)
|
||||||
{
|
{
|
||||||
Debug.Log($"ASYNC loading assetbundles for game {gameName}");
|
Debug.Log($"ASYNC loading assetbundles for game {gameName}");
|
||||||
StartCoroutine(inf.LoadCommonAssetBundleAsync());
|
StartCoroutine(inf.LoadCommonAssetBundleAsync());
|
||||||
|
@ -283,37 +301,34 @@ namespace HeavenStudio
|
||||||
|
|
||||||
public void SeekAheadAndDoPreEvent(double start)
|
public void SeekAheadAndDoPreEvent(double start)
|
||||||
{
|
{
|
||||||
List<float> entities = Beatmap.entities.Select(c => c.beat).ToList();
|
List<double> entities = Beatmap.Entities.Select(c => c.beat).ToList();
|
||||||
if (currentPreSequence < Beatmap.entities.Count && currentPreSequence >= 0)
|
if (currentPreSequence < Beatmap.Entities.Count && currentPreSequence >= 0)
|
||||||
{
|
{
|
||||||
var seekEntity = Beatmap.entities[currentPreSequence];
|
var seekEntity = Beatmap.Entities[currentPreSequence];
|
||||||
|
|
||||||
float seekTime = EventCaller.instance.GetGameAction(
|
float seekTime = EventCaller.instance.GetGameAction(
|
||||||
EventCaller.instance.GetMinigame(seekEntity.datamodel.Split(0)), seekEntity.datamodel.Split(1)).preFunctionLength;
|
EventCaller.instance.GetMinigame(seekEntity.datamodel.Split(0)), seekEntity.datamodel.Split(1)).preFunctionLength;
|
||||||
|
|
||||||
if (start + seekTime >= entities[currentPreSequence])
|
if (start + seekTime >= entities[currentPreSequence])
|
||||||
{
|
{
|
||||||
float beat = seekEntity.beat;
|
double beat = seekEntity.beat;
|
||||||
var entitiesAtSameBeat = Beatmap.entities.FindAll(c => c.beat == seekEntity.beat);
|
var entitiesAtSameBeat = Beatmap.Entities.FindAll(c => c.beat == seekEntity.beat);
|
||||||
SortEventsByPriority(entitiesAtSameBeat);
|
SortEventsByPriority(entitiesAtSameBeat);
|
||||||
foreach (DynamicBeatmap.DynamicEntity entity in entitiesAtSameBeat)
|
foreach (RiqEntity entity in entitiesAtSameBeat)
|
||||||
{
|
{
|
||||||
currentPreSequence++;
|
currentPreSequence++;
|
||||||
string gameName = entity.datamodel.Split('/')[0];
|
string gameName = entity.datamodel.Split('/')[0];
|
||||||
var inf = GetGameInfo(gameName);
|
var inf = GetGameInfo(gameName);
|
||||||
if (inf.usesAssetBundle && inf.AssetsLoaded && !inf.SequencesPreloaded)
|
if (inf != null && inf.usesAssetBundle && inf.AssetsLoaded && !inf.SequencesPreloaded)
|
||||||
{
|
{
|
||||||
Debug.Log($"Preloading game {gameName}");
|
Debug.Log($"Preloading game {gameName}");
|
||||||
PreloadGameSequences(gameName);
|
PreloadGameSequences(gameName);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
eventCaller.CallPreEvent(entity);
|
eventCaller.CallPreEvent(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
|
@ -323,40 +338,40 @@ namespace HeavenStudio
|
||||||
return;
|
return;
|
||||||
Conductor cond = Conductor.instance;
|
Conductor cond = Conductor.instance;
|
||||||
|
|
||||||
List<float> entities = Beatmap.entities.Select(c => c.beat).ToList();
|
List<double> entities = Beatmap.Entities.Select(c => c.beat).ToList();
|
||||||
|
|
||||||
List<float> tempoChanges = Beatmap.tempoChanges.Select(c => c.beat).ToList();
|
List<double> tempoChanges = Beatmap.TempoChanges.Select(c => c.beat).ToList();
|
||||||
if (currentTempoEvent < Beatmap.tempoChanges.Count && currentTempoEvent >= 0)
|
if (currentTempoEvent < Beatmap.TempoChanges.Count && currentTempoEvent >= 0)
|
||||||
{
|
{
|
||||||
if (cond.songPositionInBeatsAsDouble >= tempoChanges[currentTempoEvent])
|
if (cond.songPositionInBeatsAsDouble >= tempoChanges[currentTempoEvent])
|
||||||
{
|
{
|
||||||
cond.SetBpm(Beatmap.tempoChanges[currentTempoEvent].tempo);
|
cond.SetBpm(Beatmap.TempoChanges[currentTempoEvent]["tempo"]);
|
||||||
currentTempoEvent++;
|
currentTempoEvent++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<float> volumeChanges = Beatmap.volumeChanges.Select(c => c.beat).ToList();
|
List<double> volumeChanges = Beatmap.VolumeChanges.Select(c => c.beat).ToList();
|
||||||
if (currentVolumeEvent < Beatmap.volumeChanges.Count && currentVolumeEvent >= 0)
|
if (currentVolumeEvent < Beatmap.VolumeChanges.Count && currentVolumeEvent >= 0)
|
||||||
{
|
{
|
||||||
if (cond.songPositionInBeatsAsDouble >= volumeChanges[currentVolumeEvent])
|
if (cond.songPositionInBeatsAsDouble >= volumeChanges[currentVolumeEvent])
|
||||||
{
|
{
|
||||||
cond.SetVolume(Beatmap.volumeChanges[currentVolumeEvent].volume);
|
cond.SetVolume(Beatmap.VolumeChanges[currentVolumeEvent]["volume"]);
|
||||||
currentVolumeEvent++;
|
currentVolumeEvent++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<float> chartSections = Beatmap.beatmapSections.Select(c => c.beat).ToList();
|
List<double> chartSections = Beatmap.SectionMarkers.Select(c => c.beat).ToList();
|
||||||
if (currentSectionEvent < Beatmap.beatmapSections.Count && currentSectionEvent >= 0)
|
if (currentSectionEvent < Beatmap.SectionMarkers.Count && currentSectionEvent >= 0)
|
||||||
{
|
{
|
||||||
if (cond.songPositionInBeatsAsDouble >= chartSections[currentSectionEvent])
|
if (cond.songPositionInBeatsAsDouble >= chartSections[currentSectionEvent])
|
||||||
{
|
{
|
||||||
Debug.Log("Section " + Beatmap.beatmapSections[currentSectionEvent].sectionName + " started");
|
Debug.Log("Section " + Beatmap.SectionMarkers[currentSectionEvent]["sectionName"] + " started");
|
||||||
currentSection = Beatmap.beatmapSections[currentSectionEvent];
|
currentSection = Beatmap.SectionMarkers[currentSectionEvent];
|
||||||
currentSectionEvent++;
|
currentSectionEvent++;
|
||||||
if (currentSectionEvent < Beatmap.beatmapSections.Count)
|
if (currentSectionEvent < Beatmap.SectionMarkers.Count)
|
||||||
nextSection = Beatmap.beatmapSections[currentSectionEvent];
|
nextSection = Beatmap.SectionMarkers[currentSectionEvent];
|
||||||
else
|
else
|
||||||
nextSection = null;
|
nextSection = default(RiqEntity);
|
||||||
onSectionChange?.Invoke(currentSection);
|
onSectionChange?.Invoke(currentSection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -367,13 +382,13 @@ namespace HeavenStudio
|
||||||
|
|
||||||
SeekAheadAndDoPreEvent(Conductor.instance.songPositionInBeatsAsDouble);
|
SeekAheadAndDoPreEvent(Conductor.instance.songPositionInBeatsAsDouble);
|
||||||
|
|
||||||
if (currentEvent < Beatmap.entities.Count && currentEvent >= 0)
|
if (currentEvent < Beatmap.Entities.Count && currentEvent >= 0)
|
||||||
{
|
{
|
||||||
if (cond.songPositionInBeatsAsDouble >= entities[currentEvent])
|
if (cond.songPositionInBeatsAsDouble >= entities[currentEvent])
|
||||||
{
|
{
|
||||||
// allows for multiple events on the same beat to be executed on the same frame, so no more 1-frame delay
|
// allows for multiple events on the same beat to be executed on the same frame, so no more 1-frame delay
|
||||||
var entitiesAtSameBeat = Beatmap.entities.FindAll(c => c.beat == Beatmap.entities[currentEvent].beat && !EventCaller.FXOnlyGames().Contains(EventCaller.instance.GetMinigame(c.datamodel.Split('/')[0])));
|
var entitiesAtSameBeat = Beatmap.Entities.FindAll(c => c.beat == Beatmap.Entities[currentEvent].beat && !EventCaller.FXOnlyGames().Contains(EventCaller.instance.GetMinigame(c.datamodel.Split('/')[0])));
|
||||||
var fxEntities = Beatmap.entities.FindAll(c => c.beat == Beatmap.entities[currentEvent].beat && EventCaller.FXOnlyGames().Contains(EventCaller.instance.GetMinigame(c.datamodel.Split('/')[0])));
|
var fxEntities = Beatmap.Entities.FindAll(c => c.beat == Beatmap.Entities[currentEvent].beat && EventCaller.FXOnlyGames().Contains(EventCaller.instance.GetMinigame(c.datamodel.Split('/')[0])));
|
||||||
|
|
||||||
SortEventsByPriority(fxEntities);
|
SortEventsByPriority(fxEntities);
|
||||||
SortEventsByPriority(entitiesAtSameBeat);
|
SortEventsByPriority(entitiesAtSameBeat);
|
||||||
|
@ -385,7 +400,7 @@ namespace HeavenStudio
|
||||||
currentEvent++;
|
currentEvent++;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (DynamicBeatmap.DynamicEntity entity in entitiesAtSameBeat)
|
foreach (RiqEntity entity in entitiesAtSameBeat)
|
||||||
{
|
{
|
||||||
// if game isn't loaded, preload game so whatever event that would be called will still run outside if needed
|
// if game isn't loaded, preload game so whatever event that would be called will still run outside if needed
|
||||||
if (entity.datamodel.Split('/')[0] != currentGame)
|
if (entity.datamodel.Split('/')[0] != currentGame)
|
||||||
|
@ -409,12 +424,12 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
float currectSectionStart = (float)cond.GetSongPosFromBeat(currentSection.beat);
|
double currectSectionStart = cond.GetSongPosFromBeat(currentSection.beat);
|
||||||
|
|
||||||
if (nextSection == null)
|
if (nextSection == null)
|
||||||
sectionProgress = (cond.songPosition - currectSectionStart) / ((float)cond.GetSongPosFromBeat(endBeat) - currectSectionStart);
|
sectionProgress = (cond.songPosition - currectSectionStart) / (cond.GetSongPosFromBeat(endBeat) - currectSectionStart);
|
||||||
else
|
else
|
||||||
sectionProgress = (cond.songPosition - currectSectionStart) / ((float)cond.GetSongPosFromBeat(nextSection.beat) - currectSectionStart);
|
sectionProgress = (cond.songPosition - currectSectionStart) / (cond.GetSongPosFromBeat(nextSection.beat) - currectSectionStart);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -429,7 +444,7 @@ namespace HeavenStudio
|
||||||
|
|
||||||
#region Play Events
|
#region Play Events
|
||||||
|
|
||||||
public void Play(float beat, float delay = 0f)
|
public void Play(double beat, float delay = 0f)
|
||||||
{
|
{
|
||||||
bool paused = Conductor.instance.isPaused;
|
bool paused = Conductor.instance.isPaused;
|
||||||
Debug.Log("Playing at " + beat);
|
Debug.Log("Playing at " + beat);
|
||||||
|
@ -457,7 +472,7 @@ namespace HeavenStudio
|
||||||
onBeatChanged?.Invoke(beat);
|
onBeatChanged?.Invoke(beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator PlayCo(float beat, float delay = 0f)
|
private IEnumerator PlayCo(double beat, float delay = 0f)
|
||||||
{
|
{
|
||||||
yield return new WaitForSeconds(delay);
|
yield return new WaitForSeconds(delay);
|
||||||
bool paused = Conductor.instance.isPaused;
|
bool paused = Conductor.instance.isPaused;
|
||||||
|
@ -465,13 +480,13 @@ namespace HeavenStudio
|
||||||
Conductor.instance.Play(beat);
|
Conductor.instance.Play(beat);
|
||||||
if (paused)
|
if (paused)
|
||||||
{
|
{
|
||||||
Util.Jukebox.UnpauseOneShots();
|
Util.SoundByte.UnpauseOneShots();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Conductor.instance.SetBpm(Beatmap.bpm);
|
Conductor.instance.SetBpm(Beatmap.TempoChanges[0]["tempo"]);
|
||||||
Conductor.instance.SetVolume(Beatmap.musicVolume);
|
Conductor.instance.SetVolume(Beatmap.VolumeChanges[0]["volume"]);
|
||||||
Conductor.instance.firstBeatOffset = Beatmap.firstBeatOffset;
|
Conductor.instance.firstBeatOffset = Beatmap.data.offset;
|
||||||
SetCurrentEventToClosest(beat);
|
SetCurrentEventToClosest(beat);
|
||||||
KillAllSounds();
|
KillAllSounds();
|
||||||
}
|
}
|
||||||
|
@ -484,11 +499,11 @@ namespace HeavenStudio
|
||||||
public void Pause()
|
public void Pause()
|
||||||
{
|
{
|
||||||
Conductor.instance.Pause();
|
Conductor.instance.Pause();
|
||||||
Util.Jukebox.PauseOneShots();
|
Util.SoundByte.PauseOneShots();
|
||||||
canInput = false;
|
canInput = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Stop(float beat, bool restart = false, float restartDelay = 0f)
|
public void Stop(double beat, bool restart = false, float restartDelay = 0f)
|
||||||
{
|
{
|
||||||
Minigame miniGame = currentGameO.GetComponent<Minigame>();
|
Minigame miniGame = currentGameO.GetComponent<Minigame>();
|
||||||
if (miniGame != null)
|
if (miniGame != null)
|
||||||
|
@ -509,7 +524,7 @@ namespace HeavenStudio
|
||||||
Debug.Log($"== Playthrough statistics of {Beatmap["remixtitle"]} (played at {System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}) ==");
|
Debug.Log($"== Playthrough statistics of {Beatmap["remixtitle"]} (played at {System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}) ==");
|
||||||
Debug.Log($"Average input offset for playthrough: {averageInputOffset}ms");
|
Debug.Log($"Average input offset for playthrough: {averageInputOffset}ms");
|
||||||
Debug.Log($"Accuracy for playthrough: {(PlayerAccuracy * 100) : 0.00}");
|
Debug.Log($"Accuracy for playthrough: {(PlayerAccuracy * 100) : 0.00}");
|
||||||
Debug.Log($"Cleared {clearedSections.FindAll(c => c).Count} sections out of {Beatmap.beatmapSections.Count}");
|
Debug.Log($"Cleared {clearedSections.FindAll(c => c).Count} sections out of {Beatmap.SectionMarkers.Count}");
|
||||||
if (SkillStarManager.instance.IsCollected)
|
if (SkillStarManager.instance.IsCollected)
|
||||||
Debug.Log($"Skill Star collected");
|
Debug.Log($"Skill Star collected");
|
||||||
else
|
else
|
||||||
|
@ -524,12 +539,14 @@ namespace HeavenStudio
|
||||||
// when rating screen gets added playOnStart will instead move to that scene
|
// when rating screen gets added playOnStart will instead move to that scene
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator WaitReadyAndPlayCo(float beat)
|
private IEnumerator WaitReadyAndPlayCo(double beat)
|
||||||
{
|
{
|
||||||
// wait for overlays to be ready
|
// wait for overlays to be ready
|
||||||
yield return new WaitUntil(() => OverlaysManager.OverlaysReady);
|
yield return new WaitUntil(() => OverlaysManager.OverlaysReady);
|
||||||
// wait for first game to be loaded
|
// wait for first game to be loaded
|
||||||
yield return new WaitUntil(() => Beatmap != null && Beatmap.entities.Count > 0);
|
yield return new WaitUntil(() => Beatmap != null && Beatmap.Entities.Count > 0);
|
||||||
|
//wait for audio clip to be loaded
|
||||||
|
yield return new WaitUntil(() => Conductor.instance.musicSource.clip != null);
|
||||||
|
|
||||||
SkillStarManager.instance.KillStar();
|
SkillStarManager.instance.KillStar();
|
||||||
TimingAccuracyDisplay.instance.StopStarFlash();
|
TimingAccuracyDisplay.instance.StopStarFlash();
|
||||||
|
@ -547,7 +564,7 @@ namespace HeavenStudio
|
||||||
Destroy(SoundObjects[i].gameObject);
|
Destroy(SoundObjects[i].gameObject);
|
||||||
|
|
||||||
SoundObjects.Clear();
|
SoundObjects.Clear();
|
||||||
Util.Jukebox.KillOneShots();
|
Util.SoundByte.KillOneShots();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -556,12 +573,13 @@ namespace HeavenStudio
|
||||||
|
|
||||||
public void SortEventsList()
|
public void SortEventsList()
|
||||||
{
|
{
|
||||||
Beatmap.entities.Sort((x, y) => x.beat.CompareTo(y.beat));
|
Beatmap.Entities.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||||
Beatmap.tempoChanges.Sort((x, y) => x.beat.CompareTo(y.beat));
|
Beatmap.TempoChanges.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||||
Beatmap.volumeChanges.Sort((x, y) => x.beat.CompareTo(y.beat));
|
Beatmap.VolumeChanges.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||||
|
Beatmap.SectionMarkers.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SortEventsByPriority(List<DynamicBeatmap.DynamicEntity> entities)
|
void SortEventsByPriority(List<RiqEntity> entities)
|
||||||
{
|
{
|
||||||
entities.Sort((x, y) => {
|
entities.Sort((x, y) => {
|
||||||
Minigames.Minigame xGame = EventCaller.instance.GetMinigame(x.datamodel.Split(0));
|
Minigames.Minigame xGame = EventCaller.instance.GetMinigame(x.datamodel.Split(0));
|
||||||
|
@ -574,25 +592,33 @@ namespace HeavenStudio
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetCurrentEventToClosest(float beat)
|
public static double GetClosestInList(List<double> list, double compareTo)
|
||||||
|
{
|
||||||
|
if (list.Count > 0)
|
||||||
|
return list.Aggregate((x, y) => Math.Abs(x - compareTo) < Math.Abs(y - compareTo) ? x : y);
|
||||||
|
else
|
||||||
|
return double.MinValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetCurrentEventToClosest(double beat)
|
||||||
{
|
{
|
||||||
SortEventsList();
|
SortEventsList();
|
||||||
onBeatChanged?.Invoke(beat);
|
onBeatChanged?.Invoke(beat);
|
||||||
if (Beatmap.entities.Count > 0)
|
if (Beatmap.Entities.Count > 0)
|
||||||
{
|
{
|
||||||
List<float> entities = Beatmap.entities.Select(c => c.beat).ToList();
|
List<double> entities = Beatmap.Entities.Select(c => c.beat).ToList();
|
||||||
|
|
||||||
currentEvent = entities.IndexOf(Mathp.GetClosestInList(entities, beat));
|
currentEvent = entities.IndexOf(GetClosestInList(entities, beat));
|
||||||
currentPreEvent = entities.IndexOf(Mathp.GetClosestInList(entities, beat));
|
currentPreEvent = entities.IndexOf(GetClosestInList(entities, beat));
|
||||||
currentPreSequence = entities.IndexOf(Mathp.GetClosestInList(entities, beat));
|
currentPreSequence = entities.IndexOf(GetClosestInList(entities, beat));
|
||||||
|
|
||||||
var gameSwitchs = Beatmap.entities.FindAll(c => c.datamodel.Split(1) == "switchGame");
|
var gameSwitchs = Beatmap.Entities.FindAll(c => c.datamodel.Split(1) == "switchGame");
|
||||||
|
|
||||||
string newGame = Beatmap.entities[currentEvent].datamodel.Split(0);
|
string newGame = Beatmap.Entities[currentEvent].datamodel.Split(0);
|
||||||
|
|
||||||
if (gameSwitchs.Count > 0)
|
if (gameSwitchs.Count > 0)
|
||||||
{
|
{
|
||||||
int index = gameSwitchs.FindIndex(c => c.beat == Mathp.GetClosestInList(gameSwitchs.Select(c => c.beat).ToList(), beat));
|
int index = gameSwitchs.FindIndex(c => c.beat == GetClosestInList(gameSwitchs.Select(c => c.beat).ToList(), beat));
|
||||||
currentPreSwitch = index;
|
currentPreSwitch = index;
|
||||||
var closestGameSwitch = gameSwitchs[index];
|
var closestGameSwitch = gameSwitchs[index];
|
||||||
if (closestGameSwitch.beat <= beat)
|
if (closestGameSwitch.beat <= beat)
|
||||||
|
@ -603,7 +629,7 @@ namespace HeavenStudio
|
||||||
{
|
{
|
||||||
if (index == 0)
|
if (index == 0)
|
||||||
{
|
{
|
||||||
newGame = Beatmap.entities[0].datamodel.Split(0);
|
newGame = Beatmap.Entities[0].datamodel.Split(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -613,7 +639,7 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
newGame = Beatmap.entities[Beatmap.entities.IndexOf(closestGameSwitch) - 1].datamodel.Split(0);
|
newGame = Beatmap.Entities[Beatmap.Entities.IndexOf(closestGameSwitch) - 1].datamodel.Split(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -625,22 +651,22 @@ namespace HeavenStudio
|
||||||
SetGame(newGame);
|
SetGame(newGame);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<DynamicBeatmap.DynamicEntity> allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "end" });
|
List<RiqEntity> allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "end" });
|
||||||
if (allEnds.Count > 0)
|
if (allEnds.Count > 0)
|
||||||
endBeat = allEnds.Select(c => c.beat).Min();
|
endBeat = allEnds.Select(c => c.beat).Min();
|
||||||
else
|
else
|
||||||
endBeat = Conductor.instance.SongLengthInBeats();
|
endBeat = Conductor.instance.SongLengthInBeatsAsDouble();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetGame("noGame");
|
SetGame("noGame");
|
||||||
endBeat = Conductor.instance.SongLengthInBeats();
|
endBeat = Conductor.instance.SongLengthInBeatsAsDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Beatmap.tempoChanges.Count > 0)
|
if (Beatmap.TempoChanges.Count > 0)
|
||||||
{
|
{
|
||||||
currentTempoEvent = 0;
|
currentTempoEvent = 0;
|
||||||
List<float> tempoChanges = Beatmap.tempoChanges.Select(c => c.beat).ToList();
|
List<double> tempoChanges = Beatmap.TempoChanges.Select(c => c.beat).ToList();
|
||||||
|
|
||||||
//for tempo changes, just go over all of em until the last one we pass
|
//for tempo changes, just go over all of em until the last one we pass
|
||||||
for (int t = 0; t < tempoChanges.Count; t++)
|
for (int t = 0; t < tempoChanges.Count; t++)
|
||||||
|
@ -655,10 +681,10 @@ namespace HeavenStudio
|
||||||
// Debug.Log("currentTempoEvent is now " + currentTempoEvent);
|
// Debug.Log("currentTempoEvent is now " + currentTempoEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Beatmap.volumeChanges.Count > 0)
|
if (Beatmap.VolumeChanges.Count > 0)
|
||||||
{
|
{
|
||||||
currentVolumeEvent = 0;
|
currentVolumeEvent = 0;
|
||||||
List<float> volumeChanges = Beatmap.volumeChanges.Select(c => c.beat).ToList();
|
List<double> volumeChanges = Beatmap.VolumeChanges.Select(c => c.beat).ToList();
|
||||||
|
|
||||||
for (int t = 0; t < volumeChanges.Count; t++)
|
for (int t = 0; t < volumeChanges.Count; t++)
|
||||||
{
|
{
|
||||||
|
@ -670,12 +696,12 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
currentSection = null;
|
currentSection = default(RiqEntity);
|
||||||
nextSection = null;
|
nextSection = default(RiqEntity);
|
||||||
if (Beatmap.beatmapSections.Count > 0)
|
if (Beatmap.SectionMarkers.Count > 0)
|
||||||
{
|
{
|
||||||
currentSectionEvent = 0;
|
currentSectionEvent = 0;
|
||||||
List<float> beatmapSections = Beatmap.beatmapSections.Select(c => c.beat).ToList();
|
List<double> beatmapSections = Beatmap.SectionMarkers.Select(c => c.beat).ToList();
|
||||||
|
|
||||||
for (int t = 0; t < beatmapSections.Count; t++)
|
for (int t = 0; t < beatmapSections.Count; t++)
|
||||||
{
|
{
|
||||||
|
@ -693,7 +719,7 @@ namespace HeavenStudio
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public void SwitchGame(string game, float beat, bool flash)
|
public void SwitchGame(string game, double beat, bool flash)
|
||||||
{
|
{
|
||||||
if (game != currentGame)
|
if (game != currentGame)
|
||||||
{
|
{
|
||||||
|
@ -703,7 +729,7 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator SwitchGameIE(string game, float beat, bool flash)
|
IEnumerator SwitchGameIE(string game, double beat, bool flash)
|
||||||
{
|
{
|
||||||
if(flash == true)
|
if(flash == true)
|
||||||
{
|
{
|
||||||
|
@ -739,6 +765,7 @@ namespace HeavenStudio
|
||||||
{
|
{
|
||||||
var gameInfo = GetGameInfo(game);
|
var gameInfo = GetGameInfo(game);
|
||||||
//load the games' sound sequences
|
//load the games' sound sequences
|
||||||
|
// TODO: this blocks the main thread, and sound sequences sould be stored in a ScriptableObject
|
||||||
if (gameInfo != null && gameInfo.LoadedSoundSequences == null)
|
if (gameInfo != null && gameInfo.LoadedSoundSequences == null)
|
||||||
gameInfo.LoadedSoundSequences = GetGame(game).GetComponent<Minigame>().SoundSequences;
|
gameInfo.LoadedSoundSequences = GetGame(game).GetComponent<Minigame>().SoundSequences;
|
||||||
}
|
}
|
||||||
|
@ -750,7 +777,7 @@ namespace HeavenStudio
|
||||||
{
|
{
|
||||||
if (gameInfo.fxOnly)
|
if (gameInfo.fxOnly)
|
||||||
{
|
{
|
||||||
var gameInfos = Beatmap.entities
|
var gameInfos = Beatmap.Entities
|
||||||
.Select(x => x.datamodel.Split(0))
|
.Select(x => x.datamodel.Split(0))
|
||||||
.Select(x => GetGameInfo(x))
|
.Select(x => GetGameInfo(x))
|
||||||
.Where(x => x != null)
|
.Where(x => x != null)
|
||||||
|
|
|
@ -87,25 +87,22 @@ namespace HeavenStudio.Games
|
||||||
Tween tweenForForth;
|
Tween tweenForForth;
|
||||||
|
|
||||||
[Header("Variables")]
|
[Header("Variables")]
|
||||||
public float serveBeat;
|
public double serveBeat;
|
||||||
public bool started;
|
public bool started;
|
||||||
public bool served;
|
public bool served;
|
||||||
bool babum;
|
bool babum;
|
||||||
bool shuttleActive;
|
bool shuttleActive;
|
||||||
public bool hasMissed;
|
public bool hasMissed;
|
||||||
public static List<float> queuedVoiceLines = new List<float>();
|
public static List<double> queuedVoiceLines = new();
|
||||||
|
|
||||||
[Header("Waypoint")]
|
[Header("Waypoint")]
|
||||||
public float wayPointZForForth;
|
public float wayPointZForForth;
|
||||||
|
|
||||||
[Header("Debug")]
|
[Header("Debug")]
|
||||||
public float beatShown;
|
public double lengthHolder;
|
||||||
public float lengthHolder;
|
public double lengthShown;
|
||||||
public float lengthShown;
|
|
||||||
public int wantDistance;
|
public int wantDistance;
|
||||||
public bool wantSilent;
|
public bool wantSilent;
|
||||||
public float beatHolder;
|
|
||||||
public Transform holderPos;
|
|
||||||
|
|
||||||
void OnDestroy()
|
void OnDestroy()
|
||||||
{
|
{
|
||||||
|
@ -133,11 +130,11 @@ namespace HeavenStudio.Games
|
||||||
if(PlayerInput.Pressed() && !IsExpectingInputNow())
|
if(PlayerInput.Pressed() && !IsExpectingInputNow())
|
||||||
{
|
{
|
||||||
Baxter.GetComponent<Animator>().Play("Hit");
|
Baxter.GetComponent<Animator>().Play("Hit");
|
||||||
Jukebox.PlayOneShotGame("airRally/whooshForth_Close", -1f);
|
SoundByte.PlayOneShotGame("airRally/whooshForth_Close", -1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
var currentBeat = cond.songPositionInBeats;
|
var currentBeat = cond.songPositionInBeatsAsDouble;
|
||||||
var hitBeat = serveBeat;
|
var hitBeat = serveBeat;
|
||||||
|
|
||||||
if (started)
|
if (started)
|
||||||
|
@ -190,7 +187,7 @@ namespace HeavenStudio.Games
|
||||||
four
|
four
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ServeObject(float beat, float targetBeat, bool type)
|
public void ServeObject(double beat, double targetBeat, bool type)
|
||||||
{
|
{
|
||||||
if (!shuttleActive)
|
if (!shuttleActive)
|
||||||
{
|
{
|
||||||
|
@ -210,7 +207,7 @@ namespace HeavenStudio.Games
|
||||||
Forthington.GetComponent<Animator>().Play("Hit");
|
Forthington.GetComponent<Animator>().Play("Hit");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ReturnObject(float beat, float targetBeat, bool type)
|
public void ReturnObject(double beat, double targetBeat, bool type)
|
||||||
{
|
{
|
||||||
var shuttleScript = ActiveShuttle.GetComponent<Shuttlecock>();
|
var shuttleScript = ActiveShuttle.GetComponent<Shuttlecock>();
|
||||||
shuttleScript.flyPos = 0f;
|
shuttleScript.flyPos = 0f;
|
||||||
|
@ -220,7 +217,7 @@ namespace HeavenStudio.Games
|
||||||
shuttleScript.flyType = type;
|
shuttleScript.flyType = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ForthVoice(float beat, int type, int type2)
|
public static void ForthVoice(double beat, int type, int type2)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame == "airRally")
|
if (GameManager.instance.currentGame == "airRally")
|
||||||
{
|
{
|
||||||
|
@ -311,17 +308,15 @@ namespace HeavenStudio.Games
|
||||||
started = start;
|
started = start;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Rally(float beat, bool silent, float length)
|
public void Rally(double beat, bool silent, double length)
|
||||||
{
|
{
|
||||||
started = true;
|
started = true;
|
||||||
beatShown = beat;
|
|
||||||
if (started)
|
if (started)
|
||||||
{
|
{
|
||||||
wantSilent = silent;
|
wantSilent = silent;
|
||||||
serveBeat += 2f;
|
serveBeat += 2.0;
|
||||||
lengthHolder = length;
|
lengthHolder = length;
|
||||||
lengthShown += 2f;
|
lengthShown += 2.0;
|
||||||
beatHolder = beat;
|
|
||||||
|
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
@ -336,9 +331,9 @@ namespace HeavenStudio.Games
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat, delegate { Baxter.GetComponent<Animator>().Play("CloseReady"); }),
|
new BeatAction.Action(beat, delegate { Baxter.GetComponent<Animator>().Play("CloseReady"); }),
|
||||||
new BeatAction.Action(beat, delegate { Jukebox.PlayOneShotGame("airRally/hitForth_Close"); }),
|
new BeatAction.Action(beat, delegate { SoundByte.PlayOneShotGame("airRally/hitForth_Close"); }),
|
||||||
new BeatAction.Action(beat, delegate { if(!(silent || babum)) { Jukebox.PlayOneShotGame("airRally/nya_Close"); } }),
|
new BeatAction.Action(beat, delegate { if(!(silent || babum)) { SoundByte.PlayOneShotGame("airRally/nya_Close"); } }),
|
||||||
new BeatAction.Action(beat + 1f, delegate { if(!babum) { Forthington.GetComponent<Animator>().Play("Ready"); } }),
|
new BeatAction.Action(beat + 1, delegate { if(!babum) { Forthington.GetComponent<Animator>().Play("Ready"); } }),
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -347,9 +342,9 @@ namespace HeavenStudio.Games
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat, delegate { Baxter.GetComponent<Animator>().Play("FarReady"); }),
|
new BeatAction.Action(beat, delegate { Baxter.GetComponent<Animator>().Play("FarReady"); }),
|
||||||
new BeatAction.Action(beat, delegate { Jukebox.PlayOneShotGame("airRally/hitForth_Far"); }),
|
new BeatAction.Action(beat, delegate { SoundByte.PlayOneShotGame("airRally/hitForth_Far"); }),
|
||||||
new BeatAction.Action(beat, delegate { if(!(silent || babum)) { Jukebox.PlayOneShotGame("airRally/nya_Far"); } }),
|
new BeatAction.Action(beat, delegate { if(!(silent || babum)) { SoundByte.PlayOneShotGame("airRally/nya_Far"); } }),
|
||||||
new BeatAction.Action(beat + 1f, delegate { if(!babum) { Forthington.GetComponent<Animator>().Play("Ready"); } }),
|
new BeatAction.Action(beat + 1, delegate { if(!babum) { Forthington.GetComponent<Animator>().Play("Ready"); } }),
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -358,9 +353,9 @@ namespace HeavenStudio.Games
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat, delegate { Baxter.GetComponent<Animator>().Play("FarReady"); }),
|
new BeatAction.Action(beat, delegate { Baxter.GetComponent<Animator>().Play("FarReady"); }),
|
||||||
new BeatAction.Action(beat, delegate { Jukebox.PlayOneShotGame("airRally/hitForth_Farther"); }),
|
new BeatAction.Action(beat, delegate { SoundByte.PlayOneShotGame("airRally/hitForth_Farther"); }),
|
||||||
new BeatAction.Action(beat, delegate { if(!(silent || babum)) { Jukebox.PlayOneShotGame("airRally/nya_Farther"); } }),
|
new BeatAction.Action(beat, delegate { if(!(silent || babum)) { SoundByte.PlayOneShotGame("airRally/nya_Farther"); } }),
|
||||||
new BeatAction.Action(beat + 1f, delegate { if(!babum) { Forthington.GetComponent<Animator>().Play("Ready"); } }),
|
new BeatAction.Action(beat + 1, delegate { if(!babum) { Forthington.GetComponent<Animator>().Play("Ready"); } }),
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -369,9 +364,9 @@ namespace HeavenStudio.Games
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat, delegate { Baxter.GetComponent<Animator>().Play("FarReady"); }),
|
new BeatAction.Action(beat, delegate { Baxter.GetComponent<Animator>().Play("FarReady"); }),
|
||||||
new BeatAction.Action(beat, delegate { Jukebox.PlayOneShotGame("airRally/hitForth_Farthest"); }),
|
new BeatAction.Action(beat, delegate { SoundByte.PlayOneShotGame("airRally/hitForth_Farthest"); }),
|
||||||
new BeatAction.Action(beat, delegate { if(!(silent || babum)) { Jukebox.PlayOneShotGame("airRally/nya_Farthest"); } }),
|
new BeatAction.Action(beat, delegate { if(!(silent || babum)) { SoundByte.PlayOneShotGame("airRally/nya_Farthest"); } }),
|
||||||
new BeatAction.Action(beat + 1f, delegate { if(!babum) { Forthington.GetComponent<Animator>().Play("Ready"); } }),
|
new BeatAction.Action(beat + 1, delegate { if(!babum) { Forthington.GetComponent<Animator>().Play("Ready"); } }),
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -393,7 +388,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void BaBumBumBum(float beat, bool count, int type)
|
public void BaBumBumBum(double beat, bool count, int type)
|
||||||
{
|
{
|
||||||
//This feels wrong, will keep until I figure out what's wrong
|
//This feels wrong, will keep until I figure out what's wrong
|
||||||
babum = true;
|
babum = true;
|
||||||
|
@ -518,25 +513,25 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ReturnObject(Conductor.instance.songPositionInBeats, caller.startBeat + caller.timer + 1f, false);
|
ReturnObject(Conductor.instance.songPositionInBeatsAsDouble, caller.startBeat + caller.timer + 1f, false);
|
||||||
hasMissed = false;
|
hasMissed = false;
|
||||||
ActiveShuttle.GetComponent<Shuttlecock>().DoHit(e_BaBumState);
|
ActiveShuttle.GetComponent<Shuttlecock>().DoHit(e_BaBumState);
|
||||||
|
|
||||||
if (e_BaBumState == DistanceSound.close)
|
if (e_BaBumState == DistanceSound.close)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("airRally/hitBaxter_Close");
|
SoundByte.PlayOneShotGame("airRally/hitBaxter_Close");
|
||||||
}
|
}
|
||||||
if (e_BaBumState == DistanceSound.far)
|
if (e_BaBumState == DistanceSound.far)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("airRally/hitBaxter_Far");
|
SoundByte.PlayOneShotGame("airRally/hitBaxter_Far");
|
||||||
}
|
}
|
||||||
if (e_BaBumState == DistanceSound.farther)
|
if (e_BaBumState == DistanceSound.farther)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("airRally/hitBaxter_Farther");
|
SoundByte.PlayOneShotGame("airRally/hitBaxter_Farther");
|
||||||
}
|
}
|
||||||
if (e_BaBumState == DistanceSound.farthest)
|
if (e_BaBumState == DistanceSound.farthest)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("airRally/hitBaxter_Farthest");
|
SoundByte.PlayOneShotGame("airRally/hitBaxter_Farthest");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
served = false;
|
served = false;
|
||||||
|
@ -554,25 +549,25 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ReturnObject(Conductor.instance.songPositionInBeats, caller.startBeat + caller.timer + 2f, true);
|
ReturnObject(Conductor.instance.songPositionInBeatsAsDouble, caller.startBeat + caller.timer + 2f, true);
|
||||||
hasMissed = false;
|
hasMissed = false;
|
||||||
ActiveShuttle.GetComponent<Shuttlecock>().DoHit(e_BaBumState);
|
ActiveShuttle.GetComponent<Shuttlecock>().DoHit(e_BaBumState);
|
||||||
|
|
||||||
if (e_BaBumState == DistanceSound.close)
|
if (e_BaBumState == DistanceSound.close)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("airRally/hitBaxter_Close");
|
SoundByte.PlayOneShotGame("airRally/hitBaxter_Close");
|
||||||
}
|
}
|
||||||
if (e_BaBumState == DistanceSound.far)
|
if (e_BaBumState == DistanceSound.far)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("airRally/hitBaxter_Far");
|
SoundByte.PlayOneShotGame("airRally/hitBaxter_Far");
|
||||||
}
|
}
|
||||||
if (e_BaBumState == DistanceSound.farther)
|
if (e_BaBumState == DistanceSound.farther)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("airRally/hitBaxter_Farther");
|
SoundByte.PlayOneShotGame("airRally/hitBaxter_Farther");
|
||||||
}
|
}
|
||||||
if (e_BaBumState == DistanceSound.farthest)
|
if (e_BaBumState == DistanceSound.farthest)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("airRally/hitBaxter_Farthest");
|
SoundByte.PlayOneShotGame("airRally/hitBaxter_Farthest");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
served = false;
|
served = false;
|
||||||
|
|
|
@ -15,8 +15,8 @@ namespace HeavenStudio.Games.Scripts_AirRally
|
||||||
[SerializeField] float TargetHeightLong;
|
[SerializeField] float TargetHeightLong;
|
||||||
[SerializeField] ParticleSystem hitEffect;
|
[SerializeField] ParticleSystem hitEffect;
|
||||||
|
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
public float flyBeats;
|
public double flyBeats;
|
||||||
|
|
||||||
public bool flyType;
|
public bool flyType;
|
||||||
bool miss = false;
|
bool miss = false;
|
||||||
|
@ -74,7 +74,7 @@ namespace HeavenStudio.Games.Scripts_AirRally
|
||||||
|
|
||||||
if (miss && flyPos > 4f)
|
if (miss && flyPos > 4f)
|
||||||
{
|
{
|
||||||
if (cond.GetPositionFromBeat(startBeat, flyBeats + 1f) >= 1f)
|
if (cond.GetPositionFromBeat(startBeat, flyBeats + 1) >= 1.0)
|
||||||
{
|
{
|
||||||
GameObject.Destroy(gameObject);
|
GameObject.Destroy(gameObject);
|
||||||
return;
|
return;
|
||||||
|
@ -106,7 +106,7 @@ namespace HeavenStudio.Games.Scripts_AirRally
|
||||||
public void DoNearMiss()
|
public void DoNearMiss()
|
||||||
{
|
{
|
||||||
miss = true;
|
miss = true;
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
transform.position = PlayerTarget.position;
|
transform.position = PlayerTarget.position;
|
||||||
Rigidbody2D rb = GetComponent<Rigidbody2D>();
|
Rigidbody2D rb = GetComponent<Rigidbody2D>();
|
||||||
rb.simulated = true;
|
rb.simulated = true;
|
||||||
|
|
|
@ -93,7 +93,7 @@ namespace HeavenStudio.Games
|
||||||
static int rightCrumbAppearThreshold = 15;
|
static int rightCrumbAppearThreshold = 15;
|
||||||
static int leftCrumbAppearThreshold = 30;
|
static int leftCrumbAppearThreshold = 30;
|
||||||
static int eatenTreats = 0;
|
static int eatenTreats = 0;
|
||||||
float emotionStartBeat;
|
double emotionStartBeat;
|
||||||
float emotionLength;
|
float emotionLength;
|
||||||
string emotionAnimName;
|
string emotionAnimName;
|
||||||
bool crying;
|
bool crying;
|
||||||
|
@ -216,7 +216,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetEmotion(float beat, float length, int emotion)
|
public void SetEmotion(double beat, float length, int emotion)
|
||||||
{
|
{
|
||||||
switch (emotion)
|
switch (emotion)
|
||||||
{
|
{
|
||||||
|
@ -270,7 +270,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnTreat(float beat, bool isCake)
|
public void SpawnTreat(double beat, bool isCake)
|
||||||
{
|
{
|
||||||
var objectToSpawn = isCake ? cakeBase : donutBase;
|
var objectToSpawn = isCake ? cakeBase : donutBase;
|
||||||
var newTreat = GameObject.Instantiate(objectToSpawn, foodHolder);
|
var newTreat = GameObject.Instantiate(objectToSpawn, foodHolder);
|
||||||
|
@ -281,7 +281,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
newTreat.SetActive(true);
|
newTreat.SetActive(true);
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame(isCake ? "blueBear/cake" : "blueBear/donut");
|
SoundByte.PlayOneShotGame(isCake ? "blueBear/cake" : "blueBear/donut");
|
||||||
|
|
||||||
SquashBag(isCake);
|
SquashBag(isCake);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,10 +13,10 @@ namespace HeavenStudio.Games.Scripts_BlueBear
|
||||||
const float rotSpeed = 360f;
|
const float rotSpeed = 360f;
|
||||||
|
|
||||||
public bool isCake;
|
public bool isCake;
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
|
|
||||||
bool flying = true;
|
bool flying = true;
|
||||||
float flyBeats;
|
double flyBeats;
|
||||||
|
|
||||||
[NonSerialized] public BezierCurve3D curve;
|
[NonSerialized] public BezierCurve3D curve;
|
||||||
|
|
||||||
|
@ -59,11 +59,11 @@ namespace HeavenStudio.Games.Scripts_BlueBear
|
||||||
|
|
||||||
if (isCake)
|
if (isCake)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("blueBear/chompCake");
|
SoundByte.PlayOneShotGame("blueBear/chompCake");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("blueBear/chompDonut");
|
SoundByte.PlayOneShotGame("blueBear/chompDonut");
|
||||||
}
|
}
|
||||||
|
|
||||||
game.Bite(isCake);
|
game.Bite(isCake);
|
||||||
|
|
|
@ -39,7 +39,7 @@ namespace HeavenStudio.Games.Scripts_BoardMeeting
|
||||||
if (this == game.firstSpinner) anim.DoUnscaledAnimation("Spin", 0);
|
if (this == game.firstSpinner) anim.DoUnscaledAnimation("Spin", 0);
|
||||||
else anim.DoUnscaledAnimation(forceStart ? "Spin" : animToPlay, forceStart ? 0 : game.firstSpinner.anim.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
else anim.DoUnscaledAnimation(forceStart ? "Spin" : animToPlay, forceStart ? 0 : game.firstSpinner.anim.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
||||||
canBop = false;
|
canBop = false;
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/rollPrepare" + soundToPlay);
|
SoundByte.PlayOneShotGame("boardMeeting/rollPrepare" + soundToPlay);
|
||||||
float offset = 0;
|
float offset = 0;
|
||||||
switch (soundToPlay)
|
switch (soundToPlay)
|
||||||
{
|
{
|
||||||
|
@ -55,7 +55,7 @@ namespace HeavenStudio.Games.Scripts_BoardMeeting
|
||||||
offset = 0;
|
offset = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
rollLoop = Jukebox.PlayOneShotGame("boardMeeting/roll" + soundToPlay, Conductor.instance.songPositionInBeats + 0.5f - Conductor.instance.GetRestFromRealTime(offset), 1, 1, true);
|
rollLoop = SoundByte.PlayOneShotGame("boardMeeting/roll" + soundToPlay, Conductor.instance.songPositionInBeatsAsDouble + 0.5f - Conductor.instance.GetRestFromRealTime(offset), 1, 1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Stop(bool hit = true)
|
public void Stop(bool hit = true)
|
||||||
|
@ -71,7 +71,7 @@ namespace HeavenStudio.Games.Scripts_BoardMeeting
|
||||||
|
|
||||||
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(Conductor.instance.songPositionInBeats + 1.5f, delegate { canBop = true; })
|
new BeatAction.Action(Conductor.instance.songPositionInBeatsAsDouble + 1.5f, delegate { canBop = true; })
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -121,8 +121,8 @@ namespace HeavenStudio.Games
|
||||||
if (executives[executiveCount - 1].spinning)
|
if (executives[executiveCount - 1].spinning)
|
||||||
{
|
{
|
||||||
executives[executiveCount - 1].Stop(false);
|
executives[executiveCount - 1].Stop(false);
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/miss");
|
SoundByte.PlayOneShotGame("boardMeeting/miss");
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
ScoreMiss();
|
ScoreMiss();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -144,7 +144,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, float length, bool goBop, bool autoBop)
|
public void Bop(double beat, float length, bool goBop, bool autoBop)
|
||||||
{
|
{
|
||||||
shouldBop = autoBop;
|
shouldBop = autoBop;
|
||||||
if (goBop)
|
if (goBop)
|
||||||
|
@ -162,7 +162,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AssistantStop(float beat)
|
public void AssistantStop(double beat)
|
||||||
{
|
{
|
||||||
assistantCanBop = false;
|
assistantCanBop = false;
|
||||||
string twoSound = "boardMeeting/two";
|
string twoSound = "boardMeeting/two";
|
||||||
|
@ -199,7 +199,7 @@ namespace HeavenStudio.Games
|
||||||
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JustAssistant, MissAssistant, Empty);
|
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JustAssistant, MissAssistant, Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Stop(float beat, float length)
|
public void Stop(double beat, float length)
|
||||||
{
|
{
|
||||||
executivesCanBop = false;
|
executivesCanBop = false;
|
||||||
List<BeatAction.Action> stops = new List<BeatAction.Action>();
|
List<BeatAction.Action> stops = new List<BeatAction.Action>();
|
||||||
|
@ -213,15 +213,15 @@ namespace HeavenStudio.Games
|
||||||
if (executiveCount < 4) ex = 4;
|
if (executiveCount < 4) ex = 4;
|
||||||
if (index < ex - 3)
|
if (index < ex - 3)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/stopA");
|
SoundByte.PlayOneShotGame("boardMeeting/stopA");
|
||||||
}
|
}
|
||||||
else if (index == ex - 3)
|
else if (index == ex - 3)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/stopB");
|
SoundByte.PlayOneShotGame("boardMeeting/stopB");
|
||||||
}
|
}
|
||||||
else if (index == ex - 2)
|
else if (index == ex - 2)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/stopC");
|
SoundByte.PlayOneShotGame("boardMeeting/stopC");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (index == executiveCount - 2 && !executives[executiveCount - 1].spinning)
|
if (index == executiveCount - 2 && !executives[executiveCount - 1].spinning)
|
||||||
|
@ -242,16 +242,16 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void Prepare()
|
public void Prepare()
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/prepare");
|
SoundByte.PlayOneShotGame("boardMeeting/prepare");
|
||||||
foreach (var executive in executives)
|
foreach (var executive in executives)
|
||||||
{
|
{
|
||||||
executive.Prepare();
|
executive.Prepare();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpinEqui(float beat, float length)
|
public void SpinEqui(double beat, float length)
|
||||||
{
|
{
|
||||||
if (chairLoopSound == null) chairLoopSound = Jukebox.PlayOneShotGame("boardMeeting/chairLoop", -1, 1, 1, true);
|
if (chairLoopSound == null) chairLoopSound = SoundByte.PlayOneShotGame("boardMeeting/chairLoop", -1, 1, 1, true);
|
||||||
firstSpinner = executives[0];
|
firstSpinner = executives[0];
|
||||||
List<BeatAction.Action> rolls = new List<BeatAction.Action>();
|
List<BeatAction.Action> rolls = new List<BeatAction.Action>();
|
||||||
for (int i = 0; i < executiveCount; i++)
|
for (int i = 0; i < executiveCount; i++)
|
||||||
|
@ -287,7 +287,7 @@ namespace HeavenStudio.Games
|
||||||
bool forceStart = false;
|
bool forceStart = false;
|
||||||
if (chairLoopSound == null)
|
if (chairLoopSound == null)
|
||||||
{
|
{
|
||||||
chairLoopSound = Jukebox.PlayOneShotGame("boardMeeting/chairLoop", -1, 1, 1, true);
|
chairLoopSound = SoundByte.PlayOneShotGame("boardMeeting/chairLoop", -1, 1, 1, true);
|
||||||
firstSpinner = executives[start - 1];
|
firstSpinner = executives[start - 1];
|
||||||
forceStart = true;
|
forceStart = true;
|
||||||
}
|
}
|
||||||
|
@ -367,12 +367,12 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/missThrough");
|
SoundByte.PlayOneShotGame("boardMeeting/missThrough");
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
executives[executiveCount - 1].Stop(false);
|
executives[executiveCount - 1].Stop(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/stopPlayer");
|
SoundByte.PlayOneShotGame("boardMeeting/stopPlayer");
|
||||||
executives[executiveCount - 1].Stop();
|
executives[executiveCount - 1].Stop();
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
@ -395,8 +395,8 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/missThrough");
|
SoundByte.PlayOneShotGame("boardMeeting/missThrough");
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
executives[executiveCount - 1].Stop(false);
|
executives[executiveCount - 1].Stop(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -407,7 +407,7 @@ namespace HeavenStudio.Games
|
||||||
Conductor.instance.pitchedSecPerBeat * 0.5f, 18, 1f);
|
Conductor.instance.pitchedSecPerBeat * 0.5f, 18, 1f);
|
||||||
executives[executiveCount - 1].Stop();
|
executives[executiveCount - 1].Stop();
|
||||||
assistantAnim.DoScaledAnimationAsync("Stop", 0.5f);
|
assistantAnim.DoScaledAnimationAsync("Stop", 0.5f);
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/stopAllPlayer");
|
SoundByte.PlayOneShotGame("boardMeeting/stopAllPlayer");
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.timer + caller.startBeat + 1f, delegate
|
new BeatAction.Action(caller.timer + caller.startBeat + 1f, delegate
|
||||||
|
@ -425,8 +425,8 @@ namespace HeavenStudio.Games
|
||||||
if (executives[executiveCount - 1].spinning)
|
if (executives[executiveCount - 1].spinning)
|
||||||
{
|
{
|
||||||
executives[executiveCount - 1].Stop(false);
|
executives[executiveCount - 1].Stop(false);
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/missThrough");
|
SoundByte.PlayOneShotGame("boardMeeting/missThrough");
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
if (chairLoopSound != null)
|
if (chairLoopSound != null)
|
||||||
{
|
{
|
||||||
chairLoopSound.KillLoop(0);
|
chairLoopSound.KillLoop(0);
|
||||||
|
@ -440,8 +440,8 @@ namespace HeavenStudio.Games
|
||||||
if (executives[executiveCount - 1].spinning)
|
if (executives[executiveCount - 1].spinning)
|
||||||
{
|
{
|
||||||
executives[executiveCount - 1].Stop(false);
|
executives[executiveCount - 1].Stop(false);
|
||||||
Jukebox.PlayOneShotGame("boardMeeting/missThrough");
|
SoundByte.PlayOneShotGame("boardMeeting/missThrough");
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
if (chairLoopSound != null)
|
if (chairLoopSound != null)
|
||||||
{
|
{
|
||||||
chairLoopSound.KillLoop(0);
|
chairLoopSound.KillLoop(0);
|
||||||
|
|
|
@ -8,15 +8,15 @@ namespace HeavenStudio.Games.Scripts_BuiltToScaleDS
|
||||||
using HeavenStudio.Util;
|
using HeavenStudio.Util;
|
||||||
public class Blocks : MonoBehaviour
|
public class Blocks : MonoBehaviour
|
||||||
{
|
{
|
||||||
public float createBeat;
|
public double createBeat;
|
||||||
public float createLength;
|
public float createLength;
|
||||||
public Animator anim;
|
public Animator anim;
|
||||||
|
|
||||||
private bool moving = true;
|
private bool moving = true;
|
||||||
private BuiltToScaleDS game;
|
private BuiltToScaleDS game;
|
||||||
float windupBeat;
|
double windupBeat;
|
||||||
float hitBeat;
|
double hitBeat;
|
||||||
float sinkBeat;
|
double sinkBeat;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
|
@ -36,7 +36,7 @@ namespace HeavenStudio.Games.Scripts_BuiltToScaleDS
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
if (!moving) return;
|
if (!moving) return;
|
||||||
float currentBeat = Conductor.instance.songPositionInBeats;
|
double currentBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
var shooterState = game.shooterAnim.GetCurrentAnimatorStateInfo(0);
|
var shooterState = game.shooterAnim.GetCurrentAnimatorStateInfo(0);
|
||||||
if (currentBeat > windupBeat && currentBeat < hitBeat
|
if (currentBeat > windupBeat && currentBeat < hitBeat
|
||||||
|
@ -66,7 +66,7 @@ namespace HeavenStudio.Games.Scripts_BuiltToScaleDS
|
||||||
|
|
||||||
private void Miss(PlayerActionEvent caller)
|
private void Miss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
float sinkBeat = hitBeat + (createLength * 2f);
|
double sinkBeat = hitBeat + (createLength * 2f);
|
||||||
MultiSound.Play(
|
MultiSound.Play(
|
||||||
new MultiSound.Sound[] {
|
new MultiSound.Sound[] {
|
||||||
new MultiSound.Sound("builtToScaleDS/Sink", sinkBeat),
|
new MultiSound.Sound("builtToScaleDS/Sink", sinkBeat),
|
||||||
|
@ -90,7 +90,7 @@ namespace HeavenStudio.Games.Scripts_BuiltToScaleDS
|
||||||
game.SpawnObject(BuiltToScaleDS.BTSObject.HitPieces);
|
game.SpawnObject(BuiltToScaleDS.BTSObject.HitPieces);
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("builtToScaleDS/Hit");
|
SoundByte.PlayOneShotGame("builtToScaleDS/Hit");
|
||||||
}
|
}
|
||||||
|
|
||||||
void NearMiss()
|
void NearMiss()
|
||||||
|
@ -102,7 +102,7 @@ namespace HeavenStudio.Games.Scripts_BuiltToScaleDS
|
||||||
game.SpawnObject(BuiltToScaleDS.BTSObject.MissPieces);
|
game.SpawnObject(BuiltToScaleDS.BTSObject.MissPieces);
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("builtToScaleDS/Crumble");
|
SoundByte.PlayOneShotGame("builtToScaleDS/Crumble");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,6 +6,7 @@ using DG.Tweening;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
using HeavenStudio.Util;
|
using HeavenStudio.Util;
|
||||||
|
using Jukebox;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Loaders
|
namespace HeavenStudio.Games.Loaders
|
||||||
{
|
{
|
||||||
|
@ -230,15 +231,15 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<DynamicBeatmap.DynamicEntity> spawnedBlockEvents = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> spawnedBlockEvents = new List<RiqEntity>();
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
if (!Conductor.instance.isPlaying && !Conductor.instance.isPaused)
|
if (!Conductor.instance.isPlaying && !Conductor.instance.isPaused)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var currentBeat = Conductor.instance.songPositionInBeats;
|
var currentBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
var blockEvents = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "builtToScaleDS/spawn blocks");
|
var blockEvents = GameManager.instance.Beatmap.Entities.FindAll(c => c.datamodel == "builtToScaleDS/spawn blocks");
|
||||||
for (int i = 0; i < blockEvents.Count; i++)
|
for (int i = 0; i < blockEvents.Count; i++)
|
||||||
{
|
{
|
||||||
var ev = blockEvents[i];
|
var ev = blockEvents[i];
|
||||||
|
@ -278,7 +279,7 @@ namespace HeavenStudio.Games
|
||||||
shootingThisFrame = true;
|
shootingThisFrame = true;
|
||||||
Shoot();
|
Shoot();
|
||||||
SpawnObject(BTSObject.FlyingRod);
|
SpawnObject(BTSObject.FlyingRod);
|
||||||
Jukebox.PlayOneShotGame("builtToScaleDS/Boing");
|
SoundByte.PlayOneShotGame("builtToScaleDS/Boing");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!shootingThisFrame)
|
if (!shootingThisFrame)
|
||||||
|
@ -292,7 +293,7 @@ namespace HeavenStudio.Games
|
||||||
shootingThisFrame = false;
|
shootingThisFrame = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Lights(float beat, float length, bool autoLights, bool shouldLights)
|
public void Lights(double beat, float length, bool autoLights, bool shouldLights)
|
||||||
{
|
{
|
||||||
autoLight = autoLights;
|
autoLight = autoLights;
|
||||||
lighting = autoLights || shouldLights;
|
lighting = autoLights || shouldLights;
|
||||||
|
@ -361,7 +362,7 @@ namespace HeavenStudio.Games
|
||||||
firstLight = !firstLight;
|
firstLight = !firstLight;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnBlocks(float beat, float length)
|
public void SpawnBlocks(double beat, float length)
|
||||||
{
|
{
|
||||||
var newBlocks = GameObject.Instantiate(movingBlocksBase, blocksHolder).GetComponent<Blocks>();
|
var newBlocks = GameObject.Instantiate(movingBlocksBase, blocksHolder).GetComponent<Blocks>();
|
||||||
newBlocks.createBeat = beat;
|
newBlocks.createBeat = beat;
|
||||||
|
@ -376,7 +377,7 @@ namespace HeavenStudio.Games
|
||||||
const int blockTotalFrames = 80;
|
const int blockTotalFrames = 80;
|
||||||
const int spawnFrameOffset = -3;
|
const int spawnFrameOffset = -3;
|
||||||
List<int> criticalFrames = new List<int> { 7, 15, 23, 31, 39, 47 };
|
List<int> criticalFrames = new List<int> { 7, 15, 23, 31, 39, 47 };
|
||||||
public void SetBlockTime(Blocks blocks, float spawnBeat, float length)
|
public void SetBlockTime(Blocks blocks, double spawnBeat, float length)
|
||||||
{
|
{
|
||||||
float spawnTimeOffset = (float)spawnFrameOffset / (float)blockFramesPerSecond;
|
float spawnTimeOffset = (float)spawnFrameOffset / (float)blockFramesPerSecond;
|
||||||
|
|
||||||
|
@ -388,7 +389,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
float speedMult = secondsToHitFrame / secondsToHitBeat;
|
float speedMult = secondsToHitFrame / secondsToHitBeat;
|
||||||
|
|
||||||
float secondsPastSpawnTime = secondsPerBeat * (Conductor.instance.songPositionInBeats - spawnBeat) + spawnTimeOffset;
|
float secondsPastSpawnTime = secondsPerBeat * (Conductor.instance.songPositionInBeats - (float)spawnBeat) + spawnTimeOffset;
|
||||||
float framesPastSpawnTime = blockFramesPerSecond * speedMult * secondsPastSpawnTime;
|
float framesPastSpawnTime = blockFramesPerSecond * speedMult * secondsPastSpawnTime;
|
||||||
|
|
||||||
// The only way I could deal with Unity's interpolation shenanigans without having a stroke.
|
// The only way I could deal with Unity's interpolation shenanigans without having a stroke.
|
||||||
|
@ -434,15 +435,15 @@ namespace HeavenStudio.Games
|
||||||
elevatorAnim.Play("MakeRod", 0, 0);
|
elevatorAnim.Play("MakeRod", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayPiano(float beat, float length, int semiTones)
|
public void PlayPiano(double beat, float length, int semiTones)
|
||||||
{
|
{
|
||||||
var pianoPitch = Jukebox.GetPitchFromSemiTones(semiTones, true);
|
var pianoPitch = SoundByte.GetPitchFromSemiTones(semiTones, true);
|
||||||
var pianoSource = Jukebox.PlayOneShotGame("builtToScaleDS/Piano", -1, pianoPitch, 0.8f, true);
|
var pianoSource = SoundByte.PlayOneShotGame("builtToScaleDS/Piano", -1, pianoPitch, 0.8f, true);
|
||||||
|
|
||||||
pianoSource.SetLoopParams(beat + length, 0.1f);
|
pianoSource.SetLoopParams(beat + length, 0.1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MultiplePiano(float beat, float length, bool silent, int note1, int note2, int note3, int note4, int note5, int note6)
|
public void MultiplePiano(double beat, float length, bool silent, int note1, int note2, int note3, int note4, int note5, int note6)
|
||||||
{
|
{
|
||||||
if (silent) return;
|
if (silent) return;
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
|
|
|
@ -19,13 +19,13 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
public class CallAndResponseEvent
|
public class CallAndResponseEvent
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public float length;
|
public float length;
|
||||||
public float relativeBeat; // this beat is relative to the intervalStartBeat
|
public double relativeBeat; // this beat is relative to the intervalStartBeat
|
||||||
public Dictionary<string, dynamic> DynamicData; //if you need more properties for your queued event
|
public Dictionary<string, dynamic> DynamicData; //if you need more properties for your queued event
|
||||||
public string tag;
|
public string tag;
|
||||||
|
|
||||||
public CallAndResponseEvent(float beat, float relativeBeat, string tag, float length = 0)
|
public CallAndResponseEvent(double beat, double relativeBeat, string tag, float length = 0)
|
||||||
{
|
{
|
||||||
this.beat = beat;
|
this.beat = beat;
|
||||||
this.length = length;
|
this.length = length;
|
||||||
|
@ -73,7 +73,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float intervalStartBeat = -1; // the first beat of the interval
|
public double intervalStartBeat = -1; // the first beat of the interval
|
||||||
public float intervalLength = -1; // the duration of the interval in beats
|
public float intervalLength = -1; // the duration of the interval in beats
|
||||||
|
|
||||||
public float defaultIntervalLength; // when an event is queued and the interval has not started yet, it will use this as the interval length.
|
public float defaultIntervalLength; // when an event is queued and the interval has not started yet, it will use this as the interval length.
|
||||||
|
@ -93,9 +93,9 @@ namespace HeavenStudio.Games
|
||||||
return Conductor.instance.GetPositionFromBeat(intervalStartBeat, intervalLength - lengthOffset);
|
return Conductor.instance.GetPositionFromBeat(intervalStartBeat, intervalLength - lengthOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetIntervalProgressFromBeat(float beat, float lengthOffset = 0)
|
public float GetIntervalProgressFromBeat(double beat, float lengthOffset = 0)
|
||||||
{
|
{
|
||||||
return Mathp.Normalize(beat, intervalStartBeat, intervalStartBeat + intervalLength - lengthOffset);
|
return (float)((beat - intervalStartBeat) / ((intervalStartBeat + intervalLength - lengthOffset) - intervalStartBeat));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -112,7 +112,7 @@ namespace HeavenStudio.Games
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="beat">The interval start beat.</param>
|
/// <param name="beat">The interval start beat.</param>
|
||||||
/// <param name="length">The length of the interval.</param>
|
/// <param name="length">The length of the interval.</param>
|
||||||
public void StartInterval(float beat, float length)
|
public void StartInterval(double beat, float length)
|
||||||
{
|
{
|
||||||
if (!IntervalIsActive())
|
if (!IntervalIsActive())
|
||||||
{
|
{
|
||||||
|
@ -129,7 +129,7 @@ namespace HeavenStudio.Games
|
||||||
/// <param name="crParams">Extra properties to add to the event.</param>
|
/// <param name="crParams">Extra properties to add to the event.</param>
|
||||||
/// <param name="ignoreInterval">If true, this function will not start a new interval if the interval isn't active.</param>
|
/// <param name="ignoreInterval">If true, this function will not start a new interval if the interval isn't active.</param>
|
||||||
/// <param name="overrideInterval">If true, overrides the current interval.</param>
|
/// <param name="overrideInterval">If true, overrides the current interval.</param>
|
||||||
public void AddEvent(float beat, float length = 0, string tag = "", List<CallAndResponseEventParam> crParams = null, bool ignoreInterval = false, bool overrideInterval = false)
|
public void AddEvent(double beat, float length = 0, string tag = "", List<CallAndResponseEventParam> crParams = null, bool ignoreInterval = false, bool overrideInterval = false)
|
||||||
{
|
{
|
||||||
if ((!IntervalIsActive() && !ignoreInterval) || overrideInterval)
|
if ((!IntervalIsActive() && !ignoreInterval) || overrideInterval)
|
||||||
{
|
{
|
||||||
|
@ -150,7 +150,7 @@ namespace HeavenStudio.Games
|
||||||
/// Check if an event exists at beat.
|
/// Check if an event exists at beat.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="beat">The beat to check.</param>
|
/// <param name="beat">The beat to check.</param>
|
||||||
public bool EventExistsAtBeat(float beat)
|
public bool EventExistsAtBeat(double beat)
|
||||||
{
|
{
|
||||||
if (queuedEvents.Count == 0)
|
if (queuedEvents.Count == 0)
|
||||||
{
|
{
|
||||||
|
@ -164,7 +164,7 @@ namespace HeavenStudio.Games
|
||||||
/// Check if an event exists at relativeBeat.
|
/// Check if an event exists at relativeBeat.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="beat">The beat to check.</param>
|
/// <param name="beat">The beat to check.</param>
|
||||||
public bool EventExistsAtRelativetBeat(float relativeBeat)
|
public bool EventExistsAtRelativetBeat(double relativeBeat)
|
||||||
{
|
{
|
||||||
if (queuedEvents.Count == 0)
|
if (queuedEvents.Count == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -98,11 +98,11 @@ namespace HeavenStudio.Games
|
||||||
public GameObject bg2;
|
public GameObject bg2;
|
||||||
|
|
||||||
// when to stop playing the catch animation
|
// when to stop playing the catch animation
|
||||||
private float stopCatchLeft = 0f;
|
private double stopCatchLeft = 0;
|
||||||
private float stopCatchRight = 0f;
|
private double stopCatchRight = 0;
|
||||||
|
|
||||||
private float startSmile = 0f;
|
private double startSmile = 0;
|
||||||
private float stopSmile = 0f;
|
private double stopSmile = 0;
|
||||||
|
|
||||||
private bool bopLeft = true;
|
private bool bopLeft = true;
|
||||||
private bool bopRight = true;
|
private bool bopRight = true;
|
||||||
|
@ -112,7 +112,7 @@ namespace HeavenStudio.Games
|
||||||
static List<QueuedFruit> queuedFruits = new List<QueuedFruit>();
|
static List<QueuedFruit> queuedFruits = new List<QueuedFruit>();
|
||||||
struct QueuedFruit
|
struct QueuedFruit
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public int side;
|
public int side;
|
||||||
public bool smile;
|
public bool smile;
|
||||||
public bool isPineapple;
|
public bool isPineapple;
|
||||||
|
@ -143,20 +143,20 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
// print(stopCatchLeft + " " + stopCatchRight);
|
// print(stopCatchLeft + " " + stopCatchRight);
|
||||||
// print("current beat: " + conductor.songPositionInBeats);
|
// print("current beat: " + conductor.songPositionInBeatsAsDouble);
|
||||||
if (stopCatchLeft > 0 && stopCatchLeft <= cond.songPositionInBeats)
|
if (stopCatchLeft > 0 && stopCatchLeft <= cond.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
plalinAnim.Play("idle", 0, 0);
|
plalinAnim.Play("idle", 0, 0);
|
||||||
stopCatchLeft = 0;
|
stopCatchLeft = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stopCatchRight > 0 && stopCatchRight <= cond.songPositionInBeats)
|
if (stopCatchRight > 0 && stopCatchRight <= cond.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
alalinAnim.Play("idle", 0, 0);
|
alalinAnim.Play("idle", 0, 0);
|
||||||
stopCatchRight = 0;
|
stopCatchRight = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (startSmile > 0 && startSmile <= cond.songPositionInBeats)
|
if (startSmile > 0 && startSmile <= cond.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
//print("smile start");
|
//print("smile start");
|
||||||
plalinAnim.Play("smile", 1, 0);
|
plalinAnim.Play("smile", 1, 0);
|
||||||
|
@ -165,7 +165,7 @@ namespace HeavenStudio.Games
|
||||||
heartMessage.SetActive(true);
|
heartMessage.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stopSmile > 0 && stopSmile <= cond.songPositionInBeats)
|
if (stopSmile > 0 && stopSmile <= cond.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
//print("smile stop");
|
//print("smile stop");
|
||||||
plalinAnim.Play("stopsmile", 1, 0);
|
plalinAnim.Play("stopsmile", 1, 0);
|
||||||
|
@ -201,7 +201,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DropFruit(float beat, int side, bool smile, bool isPineapple, float endSmile)
|
public void DropFruit(double beat, int side, bool smile, bool isPineapple, float endSmile)
|
||||||
{
|
{
|
||||||
var objectToSpawn = isPineapple ? pineappleBase : orangeBase;
|
var objectToSpawn = isPineapple ? pineappleBase : orangeBase;
|
||||||
|
|
||||||
|
@ -217,9 +217,9 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
//minenice: experiment to test preFunction
|
//minenice: experiment to test preFunction
|
||||||
public static void PreDropFruit(float beat, int side, bool smile, bool isPineapple, float endSmile)
|
public static void PreDropFruit(double beat, int side, bool smile, bool isPineapple, float endSmile)
|
||||||
{
|
{
|
||||||
float spawnBeat = beat - 1f;
|
double spawnBeat = beat - 1;
|
||||||
beat = beat - (isPineapple ? 2f : 1f);
|
beat = beat - (isPineapple ? 2f : 1f);
|
||||||
if (GameManager.instance.currentGame == "catchyTune")
|
if (GameManager.instance.currentGame == "catchyTune")
|
||||||
{
|
{
|
||||||
|
@ -250,7 +250,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DropFruitSingle(float beat, bool side, bool smile, GameObject objectToSpawn, float endSmile)
|
public void DropFruitSingle(double beat, bool side, bool smile, GameObject objectToSpawn, float endSmile)
|
||||||
{
|
{
|
||||||
|
|
||||||
var newFruit = GameObject.Instantiate(objectToSpawn, fruitHolder);
|
var newFruit = GameObject.Instantiate(objectToSpawn, fruitHolder);
|
||||||
|
@ -262,7 +262,7 @@ namespace HeavenStudio.Games
|
||||||
newFruit.SetActive(true);
|
newFruit.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, float length, int whoBops, int whoBopsAuto)
|
public void Bop(double beat, float length, int whoBops, int whoBopsAuto)
|
||||||
{
|
{
|
||||||
bopLeft = whoBopsAuto == (int)WhoBops.Plalin || whoBopsAuto == (int)WhoBops.Both;
|
bopLeft = whoBopsAuto == (int)WhoBops.Plalin || whoBopsAuto == (int)WhoBops.Both;
|
||||||
bopRight = whoBopsAuto == (int)WhoBops.Alalin || whoBopsAuto == (int)WhoBops.Both;
|
bopRight = whoBopsAuto == (int)WhoBops.Alalin || whoBopsAuto == (int)WhoBops.Both;
|
||||||
|
@ -309,7 +309,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void catchSuccess(bool side, bool isPineapple, bool smile, float beat, float endSmile)
|
public void catchSuccess(bool side, bool isPineapple, bool smile, double beat, float endSmile)
|
||||||
{
|
{
|
||||||
string anim = isPineapple ? "catchPineapple" : "catchOrange";
|
string anim = isPineapple ? "catchPineapple" : "catchOrange";
|
||||||
|
|
||||||
|
@ -335,9 +335,9 @@ namespace HeavenStudio.Games
|
||||||
public void catchMiss(bool side, bool isPineapple)
|
public void catchMiss(bool side, bool isPineapple)
|
||||||
{
|
{
|
||||||
// not the right sound at all but need an accurate rip
|
// not the right sound at all but need an accurate rip
|
||||||
Jukebox.PlayOneShotGame("catchyTune/fruitThrough");
|
SoundByte.PlayOneShotGame("catchyTune/fruitThrough");
|
||||||
|
|
||||||
float beat = Conductor.instance.songPositionInBeats;
|
double beat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
string fruitType = isPineapple ? "Pineapple" : "Orange";
|
string fruitType = isPineapple ? "Pineapple" : "Orange";
|
||||||
|
|
||||||
|
@ -355,7 +355,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void catchWhiff(bool side)
|
public void catchWhiff(bool side)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("catchyTune/whiff");
|
SoundByte.PlayOneShotGame("catchyTune/whiff");
|
||||||
whiffAnim(side);
|
whiffAnim(side);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -363,11 +363,11 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (side)
|
if (side)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("catchyTune/barely right");
|
SoundByte.PlayOneShotGame("catchyTune/barely right");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("catchyTune/barely left");
|
SoundByte.PlayOneShotGame("catchyTune/barely left");
|
||||||
}
|
}
|
||||||
|
|
||||||
whiffAnim(side);
|
whiffAnim(side);
|
||||||
|
@ -375,7 +375,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void whiffAnim(bool side)
|
public void whiffAnim(bool side)
|
||||||
{
|
{
|
||||||
float beat = Conductor.instance.songPositionInBeats;
|
double beat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
if (side)
|
if (side)
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,13 +11,13 @@ namespace HeavenStudio.Games.Scripts_CatchyTune
|
||||||
{
|
{
|
||||||
|
|
||||||
public bool isPineapple;
|
public bool isPineapple;
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
|
|
||||||
public Animator anim;
|
public Animator anim;
|
||||||
|
|
||||||
public bool side;
|
public bool side;
|
||||||
|
|
||||||
public float barelyStart = 0f;
|
public double barelyStart = 0f;
|
||||||
|
|
||||||
public bool smile;
|
public bool smile;
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ namespace HeavenStudio.Games.Scripts_CatchyTune
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PlaySound(float startBeat, bool side, bool isPineapple)
|
public static void PlaySound(double startBeat, bool side, bool isPineapple)
|
||||||
{
|
{
|
||||||
string soundText = "catchyTune/";
|
string soundText = "catchyTune/";
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ namespace HeavenStudio.Games.Scripts_CatchyTune
|
||||||
if (state <= -1f || state >= 1f)
|
if (state <= -1f || state >= 1f)
|
||||||
{
|
{
|
||||||
//near miss (barely)
|
//near miss (barely)
|
||||||
barelyStart = Conductor.instance.songPositionInBeats;
|
barelyStart = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
game.catchBarely(side);
|
game.catchBarely(side);
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ namespace HeavenStudio.Games.Scripts_CatchyTune
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame(soundText + "Catch");
|
SoundByte.PlayOneShotGame(soundText + "Catch");
|
||||||
game.catchSuccess(side, isPineapple, smile, startBeat + beatLength, endSmile);
|
game.catchSuccess(side, isPineapple, smile, startBeat + beatLength, endSmile);
|
||||||
Destroy(this.gameObject);
|
Destroy(this.gameObject);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ using UnityEngine;
|
||||||
using UnityEngine.Rendering;
|
using UnityEngine.Rendering;
|
||||||
using static HeavenStudio.EntityTypes;
|
using static HeavenStudio.EntityTypes;
|
||||||
using static HeavenStudio.Games.CheerReaders;
|
using static HeavenStudio.Games.CheerReaders;
|
||||||
|
using Jukebox;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Loaders
|
namespace HeavenStudio.Games.Loaders
|
||||||
{
|
{
|
||||||
|
@ -164,20 +165,20 @@ namespace HeavenStudio.Games
|
||||||
bool shouldBop = true;
|
bool shouldBop = true;
|
||||||
bool canBop = true;
|
bool canBop = true;
|
||||||
public bool doingCue;
|
public bool doingCue;
|
||||||
float cueLength;
|
double cueLength;
|
||||||
float cueBeat;
|
double cueBeat;
|
||||||
bool shouldYay;
|
bool shouldYay;
|
||||||
bool shouldDoSuccessZoom;
|
bool shouldDoSuccessZoom;
|
||||||
public bool shouldBeBlack = false;
|
public bool shouldBeBlack = false;
|
||||||
public GameEvent bop = new GameEvent();
|
public GameEvent bop = new GameEvent();
|
||||||
int currentZoomIndex;
|
int currentZoomIndex;
|
||||||
float currentZoomCamBeat;
|
double currentZoomCamBeat;
|
||||||
float currentZoomCamLength;
|
float currentZoomCamLength;
|
||||||
private List<DynamicBeatmap.DynamicEntity> allCameraEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> allCameraEvents = new List<RiqEntity>();
|
||||||
|
|
||||||
void OnDestroy()
|
void OnDestroy()
|
||||||
{
|
{
|
||||||
Jukebox.KillLoop(SpinningLoop, 0.5f);
|
SoundByte.KillLoop(SpinningLoop, 0.5f);
|
||||||
foreach (var evt in scheduledInputs)
|
foreach (var evt in scheduledInputs)
|
||||||
{
|
{
|
||||||
evt.Disable();
|
evt.Disable();
|
||||||
|
@ -210,10 +211,10 @@ namespace HeavenStudio.Games
|
||||||
allGirls.AddRange(thirdRow);
|
allGirls.AddRange(thirdRow);
|
||||||
var camEvents = EventCaller.GetAllInGameManagerList("cheerReaders", new string[] { "okItsOn" });
|
var camEvents = EventCaller.GetAllInGameManagerList("cheerReaders", new string[] { "okItsOn" });
|
||||||
camEvents.AddRange(EventCaller.GetAllInGameManagerList("cheerReaders", new string[] { "okItsOnStretch" }));
|
camEvents.AddRange(EventCaller.GetAllInGameManagerList("cheerReaders", new string[] { "okItsOnStretch" }));
|
||||||
List<DynamicBeatmap.DynamicEntity> tempEvents = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> tempEvents = new List<RiqEntity>();
|
||||||
for (int i = 0; i < camEvents.Count; i++)
|
for (int i = 0; i < camEvents.Count; i++)
|
||||||
{
|
{
|
||||||
if (camEvents[i].beat + camEvents[i].beat >= Conductor.instance.songPositionInBeats)
|
if (camEvents[i].beat + camEvents[i].beat >= Conductor.instance.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
tempEvents.Add(camEvents[i]);
|
tempEvents.Add(camEvents[i]);
|
||||||
}
|
}
|
||||||
|
@ -238,7 +239,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (currentZoomIndex < allCameraEvents.Count && currentZoomIndex >= 0)
|
if (currentZoomIndex < allCameraEvents.Count && currentZoomIndex >= 0)
|
||||||
{
|
{
|
||||||
if (Conductor.instance.songPositionInBeats >= allCameraEvents[currentZoomIndex].beat)
|
if (Conductor.instance.songPositionInBeatsAsDouble >= allCameraEvents[currentZoomIndex].beat)
|
||||||
{
|
{
|
||||||
UpdateCameraZoom();
|
UpdateCameraZoom();
|
||||||
currentZoomIndex++;
|
currentZoomIndex++;
|
||||||
|
@ -256,7 +257,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EasingFunction.Function func = EasingFunction.GetEasingFunction(EasingFunction.Ease.EaseInOutQuint);
|
Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseInOutQuint);
|
||||||
float newZoom = func(shouldDoSuccessZoom ? 4f : 1.5f, 0, normalizedZoomOutAgainBeat);
|
float newZoom = func(shouldDoSuccessZoom ? 4f : 1.5f, 0, normalizedZoomOutAgainBeat);
|
||||||
GameCamera.additionalPosition = new Vector3(0, 0, newZoom);
|
GameCamera.additionalPosition = new Vector3(0, 0, newZoom);
|
||||||
}
|
}
|
||||||
|
@ -269,7 +270,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EasingFunction.Function func = EasingFunction.GetEasingFunction(EasingFunction.Ease.EaseOutQuint);
|
Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseOutQuint);
|
||||||
float newZoom = func(-1, shouldDoSuccessZoom ? 4f : 1.5f, normalizedZoomInBeat);
|
float newZoom = func(-1, shouldDoSuccessZoom ? 4f : 1.5f, normalizedZoomInBeat);
|
||||||
GameCamera.additionalPosition = new Vector3(0, 0, newZoom);
|
GameCamera.additionalPosition = new Vector3(0, 0, newZoom);
|
||||||
}
|
}
|
||||||
|
@ -282,7 +283,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EasingFunction.Function func = EasingFunction.GetEasingFunction(EasingFunction.Ease.EaseOutQuint);
|
Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.EaseOutQuint);
|
||||||
float newZoom = func(0f, 1f, normalizedZoomOutBeat);
|
float newZoom = func(0f, 1f, normalizedZoomOutBeat);
|
||||||
GameCamera.additionalPosition = new Vector3(0, 0, newZoom * -1);
|
GameCamera.additionalPosition = new Vector3(0, 0, newZoom * -1);
|
||||||
}
|
}
|
||||||
|
@ -292,22 +293,22 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
player.FlipBook(false);
|
player.FlipBook(false);
|
||||||
missPoster.SetActive(false);
|
missPoster.SetActive(false);
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/miss");
|
SoundByte.PlayOneShotGame("cheerReaders/miss");
|
||||||
ScoreMiss(1f);
|
ScoreMiss(1f);
|
||||||
}
|
}
|
||||||
if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
|
if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/doingoing");
|
SoundByte.PlayOneShotGame("cheerReaders/doingoing");
|
||||||
player.StartSpinBook();
|
player.StartSpinBook();
|
||||||
missPoster.SetActive(false);
|
missPoster.SetActive(false);
|
||||||
SpinningLoop = Jukebox.PlayOneShotGame("cheerReaders/bookSpinLoop", -1, 1, 1, true);
|
SpinningLoop = SoundByte.PlayOneShotGame("cheerReaders/bookSpinLoop", -1, 1, 1, true);
|
||||||
ScoreMiss(1f);
|
ScoreMiss(1f);
|
||||||
}
|
}
|
||||||
if (PlayerInput.AltPressedUp() && !IsExpectingInputNow(InputType.STANDARD_ALT_UP))
|
if (PlayerInput.AltPressedUp() && !IsExpectingInputNow(InputType.STANDARD_ALT_UP))
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/doingoing");
|
SoundByte.PlayOneShotGame("cheerReaders/doingoing");
|
||||||
player.StopSpinBook();
|
player.StopSpinBook();
|
||||||
Jukebox.KillLoop(SpinningLoop, 0f);
|
SoundByte.KillLoop(SpinningLoop, 0f);
|
||||||
ScoreMiss(1f);
|
ScoreMiss(1f);
|
||||||
missPoster.SetActive(true);
|
missPoster.SetActive(true);
|
||||||
}
|
}
|
||||||
|
@ -326,7 +327,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else if (!cond.isPlaying)
|
else if (!cond.isPlaying)
|
||||||
{
|
{
|
||||||
Jukebox.KillLoop(SpinningLoop, 0.5f);
|
SoundByte.KillLoop(SpinningLoop, 0.5f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -399,7 +400,7 @@ namespace HeavenStudio.Games
|
||||||
switch (whoSpeaks)
|
switch (whoSpeaks)
|
||||||
{
|
{
|
||||||
case (int)WhoSpeaks.Solo:
|
case (int)WhoSpeaks.Solo:
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/Solo/yayS");
|
SoundByte.PlayOneShotGame("cheerReaders/Solo/yayS");
|
||||||
player.Yay(true);
|
player.Yay(true);
|
||||||
foreach (var nerd in allGirls)
|
foreach (var nerd in allGirls)
|
||||||
{
|
{
|
||||||
|
@ -407,7 +408,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case (int)WhoSpeaks.Girls:
|
case (int)WhoSpeaks.Girls:
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/Girls/yayGirls");
|
SoundByte.PlayOneShotGame("cheerReaders/Girls/yayGirls");
|
||||||
foreach (var nerd in allGirls)
|
foreach (var nerd in allGirls)
|
||||||
{
|
{
|
||||||
nerd.Yay(true);
|
nerd.Yay(true);
|
||||||
|
@ -415,7 +416,7 @@ namespace HeavenStudio.Games
|
||||||
player.Yay(false);
|
player.Yay(false);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/All/yay");
|
SoundByte.PlayOneShotGame("cheerReaders/All/yay");
|
||||||
foreach (var nerd in allGirls)
|
foreach (var nerd in allGirls)
|
||||||
{
|
{
|
||||||
nerd.Yay(true);
|
nerd.Yay(true);
|
||||||
|
@ -425,7 +426,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BopToggle(float beat, float length, bool startBop, bool bopAuto)
|
public void BopToggle(double beat, float length, bool startBop, bool bopAuto)
|
||||||
{
|
{
|
||||||
shouldBop = bopAuto;
|
shouldBop = bopAuto;
|
||||||
if (startBop)
|
if (startBop)
|
||||||
|
@ -463,7 +464,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetIsDoingCue(float beat, float length, bool shouldSwitchColor = true)
|
public void SetIsDoingCue(double beat, float length, bool shouldSwitchColor = true)
|
||||||
{
|
{
|
||||||
if (!doingCue) shouldYay = false;
|
if (!doingCue) shouldYay = false;
|
||||||
foreach (var girl in allGirls)
|
foreach (var girl in allGirls)
|
||||||
|
@ -481,7 +482,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OneTwoThree(float beat, int whoSpeaks)
|
public void OneTwoThree(double beat, int whoSpeaks)
|
||||||
{
|
{
|
||||||
canBop = false;
|
canBop = false;
|
||||||
ScheduleInput(beat, 2, InputType.STANDARD_DOWN, JustFlip, MissFlip, Nothing);
|
ScheduleInput(beat, 2, InputType.STANDARD_DOWN, JustFlip, MissFlip, Nothing);
|
||||||
|
@ -609,7 +610,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ItsUpToYou(float beat, int whoSpeaks)
|
public void ItsUpToYou(double beat, int whoSpeaks)
|
||||||
{
|
{
|
||||||
canBop = false;
|
canBop = false;
|
||||||
ScheduleInput(beat, 2, InputType.STANDARD_DOWN, JustFlip, MissFlip, Nothing);
|
ScheduleInput(beat, 2, InputType.STANDARD_DOWN, JustFlip, MissFlip, Nothing);
|
||||||
|
@ -767,7 +768,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LetsGoReadABunchaBooks(float beat, int whoSpeaks)
|
public void LetsGoReadABunchaBooks(double beat, int whoSpeaks)
|
||||||
{
|
{
|
||||||
canBop = false;
|
canBop = false;
|
||||||
ScheduleInput(beat, 2, InputType.STANDARD_DOWN, JustFlip, MissFlip, Nothing);
|
ScheduleInput(beat, 2, InputType.STANDARD_DOWN, JustFlip, MissFlip, Nothing);
|
||||||
|
@ -953,7 +954,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RahRahSisBoomBaBoom(float beat, int whoSpeaks, bool consecutive)
|
public void RahRahSisBoomBaBoom(double beat, int whoSpeaks, bool consecutive)
|
||||||
{
|
{
|
||||||
canBop = false;
|
canBop = false;
|
||||||
ScheduleInput(beat, 2.5f, InputType.STANDARD_DOWN, JustFlipBoom, MissFlip, Nothing);
|
ScheduleInput(beat, 2.5f, InputType.STANDARD_DOWN, JustFlipBoom, MissFlip, Nothing);
|
||||||
|
@ -1163,7 +1164,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OkItsOnStretchable(float beat, float length, int whoSpeaks, bool whistle, int posterToChoose, bool shouldHappyFace)
|
public void OkItsOnStretchable(double beat, float length, int whoSpeaks, bool whistle, int posterToChoose, bool shouldHappyFace)
|
||||||
{
|
{
|
||||||
canBop = false;
|
canBop = false;
|
||||||
float actualLength = length * 0.25f;
|
float actualLength = length * 0.25f;
|
||||||
|
@ -1360,7 +1361,7 @@ namespace HeavenStudio.Games
|
||||||
missPoster.SetActive(false);
|
missPoster.SetActive(false);
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/doingoing");
|
SoundByte.PlayOneShotGame("cheerReaders/doingoing");
|
||||||
player.FlipBook(); //Need near miss anims
|
player.FlipBook(); //Need near miss anims
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1372,7 +1373,7 @@ namespace HeavenStudio.Games
|
||||||
missPoster.SetActive(false);
|
missPoster.SetActive(false);
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/doingoing");
|
SoundByte.PlayOneShotGame("cheerReaders/doingoing");
|
||||||
player.FlipBook(); //Need near miss anims
|
player.FlipBook(); //Need near miss anims
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1385,11 +1386,11 @@ namespace HeavenStudio.Games
|
||||||
shouldYay = true;
|
shouldYay = true;
|
||||||
if (boom)
|
if (boom)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/bookBoom");
|
SoundByte.PlayOneShotGame("cheerReaders/bookBoom");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/bookPlayer");
|
SoundByte.PlayOneShotGame("cheerReaders/bookPlayer");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1398,9 +1399,9 @@ namespace HeavenStudio.Games
|
||||||
missPoster.SetActive(false);
|
missPoster.SetActive(false);
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/doingoing");
|
SoundByte.PlayOneShotGame("cheerReaders/doingoing");
|
||||||
player.StartSpinBook();
|
player.StartSpinBook();
|
||||||
SpinningLoop = Jukebox.PlayOneShotGame("cheerReaders/bookSpinLoop", -1, 1, 1, true);
|
SpinningLoop = SoundByte.PlayOneShotGame("cheerReaders/bookSpinLoop", -1, 1, 1, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SuccessHoldSpin();
|
SuccessHoldSpin();
|
||||||
|
@ -1409,16 +1410,16 @@ namespace HeavenStudio.Games
|
||||||
void SuccessHoldSpin()
|
void SuccessHoldSpin()
|
||||||
{
|
{
|
||||||
player.StartSpinBook();
|
player.StartSpinBook();
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/bookSpin");
|
SoundByte.PlayOneShotGame("cheerReaders/bookSpin");
|
||||||
SpinningLoop = Jukebox.PlayOneShotScheduledGame("cheerReaders/bookSpinLoop", Jukebox.GetClipLengthGame("cheerReaders/bookSpin"), 1, 1, true);
|
SpinningLoop = SoundByte.PlayOneShotScheduledGame("cheerReaders/bookSpinLoop", SoundByte.GetClipLengthGame("cheerReaders/bookSpin"), 1, 1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustReleaseSpin(PlayerActionEvent caller, float state)
|
void JustReleaseSpin(PlayerActionEvent caller, float state)
|
||||||
{
|
{
|
||||||
Jukebox.KillLoop(SpinningLoop, 0f);
|
SoundByte.KillLoop(SpinningLoop, 0f);
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/doingoing");
|
SoundByte.PlayOneShotGame("cheerReaders/doingoing");
|
||||||
player.StopSpinBook();
|
player.StopSpinBook();
|
||||||
shouldDoSuccessZoom = false;
|
shouldDoSuccessZoom = false;
|
||||||
missPoster.SetActive(true);
|
missPoster.SetActive(true);
|
||||||
|
@ -1429,7 +1430,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
void SuccessReleaseSpin()
|
void SuccessReleaseSpin()
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/bookOpen");
|
SoundByte.PlayOneShotGame("cheerReaders/bookOpen");
|
||||||
player.StopSpinBook();
|
player.StopSpinBook();
|
||||||
shouldYay = true;
|
shouldYay = true;
|
||||||
shouldDoSuccessZoom = true;
|
shouldDoSuccessZoom = true;
|
||||||
|
@ -1440,7 +1441,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
playerMask.SetActive(false);
|
playerMask.SetActive(false);
|
||||||
missPoster.SetActive(false);
|
missPoster.SetActive(false);
|
||||||
Jukebox.PlayOneShotGame("cheerReaders/doingoing");
|
SoundByte.PlayOneShotGame("cheerReaders/doingoing");
|
||||||
player.Miss();
|
player.Miss();
|
||||||
shouldDoSuccessZoom = false;
|
shouldDoSuccessZoom = false;
|
||||||
foreach (var girl in allGirls)
|
foreach (var girl in allGirls)
|
||||||
|
|
|
@ -3,6 +3,8 @@ using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
using HeavenStudio.Util;
|
using HeavenStudio.Util;
|
||||||
|
using Jukebox;
|
||||||
|
using Jukebox.Legacy;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Loaders
|
namespace HeavenStudio.Games.Loaders
|
||||||
{
|
{
|
||||||
|
@ -41,7 +43,7 @@ namespace HeavenStudio.Games.Loaders
|
||||||
function = delegate { var e = eventCaller.currentEntity; ClappyTrio.instance.Sign(e.beat, e.length, e["ease"], e["down"]); },
|
function = delegate { var e = eventCaller.currentEntity; ClappyTrio.instance.Sign(e.beat, e.length, e["ease"], e["down"]); },
|
||||||
parameters = new List<Param>()
|
parameters = new List<Param>()
|
||||||
{
|
{
|
||||||
new Param("ease", EasingFunction.Ease.Linear, "Ease", "Which ease should the sign move with?"),
|
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Which ease should the sign move with?"),
|
||||||
new Param("down", true, "Down", "Should the sign go down?")
|
new Param("down", true, "Down", "Should the sign go down?")
|
||||||
},
|
},
|
||||||
resizable = true
|
resizable = true
|
||||||
|
@ -96,9 +98,9 @@ namespace HeavenStudio.Games
|
||||||
public GameEvent bop = new GameEvent();
|
public GameEvent bop = new GameEvent();
|
||||||
|
|
||||||
[SerializeField] Animator signAnim;
|
[SerializeField] Animator signAnim;
|
||||||
float signStartBeat;
|
double signStartBeat;
|
||||||
float signLength;
|
float signLength;
|
||||||
EasingFunction.Ease lastEase;
|
Util.EasingFunction.Ease lastEase;
|
||||||
bool signGoDown;
|
bool signGoDown;
|
||||||
|
|
||||||
public static ClappyTrio instance { get; set; }
|
public static ClappyTrio instance { get; set; }
|
||||||
|
@ -112,9 +114,9 @@ namespace HeavenStudio.Games
|
||||||
clapSounds = null;
|
clapSounds = null;
|
||||||
InitLions();
|
InitLions();
|
||||||
}
|
}
|
||||||
public override void OnGameSwitch(float beat)
|
public override void OnGameSwitch(double beat)
|
||||||
{
|
{
|
||||||
DynamicBeatmap.DynamicEntity changeLion = GameManager.instance.Beatmap.entities.FindLast(c => c.datamodel == "clappyTrio/change lion count" && c.beat <= beat);
|
RiqEntity changeLion = GameManager.instance.Beatmap.Entities.FindLast(c => c.datamodel == "clappyTrio/change lion count" && c.beat <= beat);
|
||||||
if(changeLion != null)
|
if(changeLion != null)
|
||||||
{
|
{
|
||||||
EventCaller.instance.CallEvent(changeLion, true);
|
EventCaller.instance.CallEvent(changeLion, true);
|
||||||
|
@ -126,7 +128,7 @@ namespace HeavenStudio.Games
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1))
|
if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1))
|
||||||
{
|
{
|
||||||
if (shouldBop) Bop(cond.songPositionInBeats);
|
if (shouldBop) Bop(cond.songPositionInBeatsAsDouble);
|
||||||
}
|
}
|
||||||
if (cond.isPlaying && !cond.isPaused)
|
if (cond.isPlaying && !cond.isPaused)
|
||||||
{
|
{
|
||||||
|
@ -134,19 +136,19 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
if (normalizedBeat > 0 && normalizedBeat <= 1)
|
if (normalizedBeat > 0 && normalizedBeat <= 1)
|
||||||
{
|
{
|
||||||
EasingFunction.Function func = EasingFunction.GetEasingFunction(lastEase);
|
Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction(lastEase);
|
||||||
float newPos = func(0, 1, normalizedBeat);
|
float newPos = func(0, 1, normalizedBeat);
|
||||||
signAnim.DoNormalizedAnimation(signGoDown ? "Enter" : "Exit", newPos);
|
signAnim.DoNormalizedAnimation(signGoDown ? "Enter" : "Exit", newPos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Sign(float beat, float length, int ease, bool down)
|
public void Sign(double beat, float length, int ease, bool down)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("clappyTrio/sign");
|
SoundByte.PlayOneShotGame("clappyTrio/sign");
|
||||||
signStartBeat = beat;
|
signStartBeat = beat;
|
||||||
signLength = length;
|
signLength = length;
|
||||||
lastEase = (EasingFunction.Ease)ease;
|
lastEase = (Util.EasingFunction.Ease)ease;
|
||||||
signGoDown = down;
|
signGoDown = down;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +181,7 @@ namespace HeavenStudio.Games
|
||||||
clapAction.Delete();
|
clapAction.Delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Clap(float beat, float length)
|
public void Clap(double beat, float length)
|
||||||
{
|
{
|
||||||
ClappyTrioPlayer.clapStarted = true;
|
ClappyTrioPlayer.clapStarted = true;
|
||||||
ClappyTrioPlayer.canHit = true; // this is technically a lie, this just restores the ability to hit
|
ClappyTrioPlayer.canHit = true; // this is technically a lie, this just restores the ability to hit
|
||||||
|
@ -209,10 +211,10 @@ namespace HeavenStudio.Games
|
||||||
SetFace(i, type);
|
SetFace(i, type);
|
||||||
}
|
}
|
||||||
PlayAnimationAll("Prepare");
|
PlayAnimationAll("Prepare");
|
||||||
Jukebox.PlayOneShotGame("clappyTrio/ready");
|
SoundByte.PlayOneShotGame("clappyTrio/ready");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BopToggle(float beat, float length, bool startBop, bool autoBop, bool emo)
|
public void BopToggle(double beat, float length, bool startBop, bool autoBop, bool emo)
|
||||||
{
|
{
|
||||||
doEmotion = !emo;
|
doEmotion = !emo;
|
||||||
shouldBop = autoBop;
|
shouldBop = autoBop;
|
||||||
|
@ -222,7 +224,7 @@ namespace HeavenStudio.Games
|
||||||
for (int i = 0; i < length; i++)
|
for (int i = 0; i < length; i++)
|
||||||
{
|
{
|
||||||
if (i == 0 && startBop && autoBop) continue;
|
if (i == 0 && startBop && autoBop) continue;
|
||||||
float spawnBeat = beat + i;
|
double spawnBeat = beat + i;
|
||||||
bops.Add(new BeatAction.Action(spawnBeat, delegate { Bop(spawnBeat); }));
|
bops.Add(new BeatAction.Action(spawnBeat, delegate { Bop(spawnBeat); }));
|
||||||
if (i == length - 1)
|
if (i == length - 1)
|
||||||
{
|
{
|
||||||
|
@ -233,7 +235,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat)
|
public void Bop(double beat)
|
||||||
{
|
{
|
||||||
if (doEmotion && emoCounter > 0)
|
if (doEmotion && emoCounter > 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace HeavenStudio.Games.Scripts_ClappyTrio
|
||||||
public class ClappyTrioPlayer : MonoBehaviour
|
public class ClappyTrioPlayer : MonoBehaviour
|
||||||
{
|
{
|
||||||
ClappyTrio game;
|
ClappyTrio game;
|
||||||
private float lastClapBeat;
|
private double lastClapBeat;
|
||||||
private float lastClapLength;
|
private float lastClapLength;
|
||||||
|
|
||||||
public bool clapStarted = false;
|
public bool clapStarted = false;
|
||||||
|
@ -32,7 +32,7 @@ namespace HeavenStudio.Games.Scripts_ClappyTrio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void QueueClap(float startBeat, float length)
|
public void QueueClap(double startBeat, float length)
|
||||||
{
|
{
|
||||||
lastClapBeat = startBeat;
|
lastClapBeat = startBeat;
|
||||||
lastClapLength = length;
|
lastClapLength = length;
|
||||||
|
@ -69,12 +69,12 @@ namespace HeavenStudio.Games.Scripts_ClappyTrio
|
||||||
if (just)
|
if (just)
|
||||||
{
|
{
|
||||||
clapEffect.SetActive(true);
|
clapEffect.SetActive(true);
|
||||||
Jukebox.PlayOneShotGame("clappyTrio/rightClap");
|
SoundByte.PlayOneShotGame("clappyTrio/rightClap");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
clapEffect.SetActive(false);
|
clapEffect.SetActive(false);
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
game.misses++;
|
game.misses++;
|
||||||
|
|
||||||
if (clapStarted)
|
if (clapStarted)
|
||||||
|
|
|
@ -155,12 +155,12 @@ namespace HeavenStudio.Games
|
||||||
//nothing
|
//nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TossCoin(float beat, int type, bool audienceReacting)
|
public void TossCoin(double beat, int type, bool audienceReacting)
|
||||||
{
|
{
|
||||||
if (coin != null) return;
|
if (coin != null) return;
|
||||||
|
|
||||||
//Play sound and animations
|
//Play sound and animations
|
||||||
Jukebox.PlayOneShotGame("coinToss/throw");
|
SoundByte.PlayOneShotGame("coinToss/throw");
|
||||||
handAnimator.Play("Throw", 0, 0);
|
handAnimator.Play("Throw", 0, 0);
|
||||||
//Game state says the hand is throwing the coin
|
//Game state says the hand is throwing the coin
|
||||||
isThrowing = true;
|
isThrowing = true;
|
||||||
|
@ -169,7 +169,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
case (int) CoinToss.CoinVariation.Cowbell:
|
case (int) CoinToss.CoinVariation.Cowbell:
|
||||||
//this was intentional. it was to avoid the throw and cowbells to go offbeat.
|
//this was intentional. it was to avoid the throw and cowbells to go offbeat.
|
||||||
Jukebox.PlayOneShotGame("coinToss/cowbell1");
|
SoundByte.PlayOneShotGame("coinToss/cowbell1");
|
||||||
MultiSound.Play(new MultiSound.Sound[] {
|
MultiSound.Play(new MultiSound.Sound[] {
|
||||||
new MultiSound.Sound("coinToss/cowbell2", beat + 1f, offset: 0.01f),
|
new MultiSound.Sound("coinToss/cowbell2", beat + 1f, offset: 0.01f),
|
||||||
new MultiSound.Sound("coinToss/cowbell1", beat + 2f, offset: 0.01f),
|
new MultiSound.Sound("coinToss/cowbell1", beat + 2f, offset: 0.01f),
|
||||||
|
@ -189,12 +189,12 @@ namespace HeavenStudio.Games
|
||||||
//coin.perfectOnly = true;
|
//coin.perfectOnly = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TossCoin(float beat)
|
public void TossCoin(double beat)
|
||||||
{
|
{
|
||||||
if (coin != null) return;
|
if (coin != null) return;
|
||||||
|
|
||||||
//Play sound and animations
|
//Play sound and animations
|
||||||
Jukebox.PlayOneShotGame("coinToss/throw");
|
SoundByte.PlayOneShotGame("coinToss/throw");
|
||||||
handAnimator.Play("Throw", 0, 0);
|
handAnimator.Play("Throw", 0, 0);
|
||||||
//Game state says the hand is throwing the coin
|
//Game state says the hand is throwing the coin
|
||||||
isThrowing = true;
|
isThrowing = true;
|
||||||
|
@ -206,8 +206,8 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void CatchSuccess(PlayerActionEvent caller, float state)
|
public void CatchSuccess(PlayerActionEvent caller, float state)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("coinToss/catch");
|
SoundByte.PlayOneShotGame("coinToss/catch");
|
||||||
if(this.audienceReacting) Jukebox.PlayOneShot("applause");
|
if(this.audienceReacting) SoundByte.PlayOneShot("applause");
|
||||||
handAnimator.Play("Catch_success", 0, 0);
|
handAnimator.Play("Catch_success", 0, 0);
|
||||||
|
|
||||||
isThrowing = false;
|
isThrowing = false;
|
||||||
|
@ -215,8 +215,8 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void CatchMiss(PlayerActionEvent caller)
|
public void CatchMiss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
if(this.audienceReacting) Jukebox.PlayOneShot("audience/disappointed");
|
if(this.audienceReacting) SoundByte.PlayOneShot("audience/disappointed");
|
||||||
handAnimator.Play("Pickup", 0, 0);
|
handAnimator.Play("Pickup", 0, 0);
|
||||||
|
|
||||||
isThrowing = false;
|
isThrowing = false;
|
||||||
|
|
|
@ -4,6 +4,7 @@ using HeavenStudio.Util;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using Jukebox;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Loaders
|
namespace HeavenStudio.Games.Loaders
|
||||||
{
|
{
|
||||||
|
@ -64,14 +65,14 @@ namespace HeavenStudio.Games
|
||||||
float grassWidth;
|
float grassWidth;
|
||||||
float dotsWidth = 19.2f;
|
float dotsWidth = 19.2f;
|
||||||
|
|
||||||
private float newBeat = -1f; // So that marching can happen on beat 0.
|
private double newBeat = -1f; // So that marching can happen on beat 0.
|
||||||
private float marchStartBeat = -1f;
|
private double marchStartBeat = -1f;
|
||||||
private float marchOffset;
|
private double marchOffset;
|
||||||
private int currentMarchBeat;
|
private int currentMarchBeat;
|
||||||
private int stepCount;
|
private int stepCount;
|
||||||
private bool isStepping;
|
private bool isStepping;
|
||||||
|
|
||||||
private static float inactiveStart = -1f;
|
private static double inactiveStart = -1f;
|
||||||
|
|
||||||
public bool isMarching => marchStartBeat != -1f;
|
public bool isMarching => marchStartBeat != -1f;
|
||||||
|
|
||||||
|
@ -111,10 +112,10 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
// Initialize vegetables.
|
// Initialize vegetables.
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
var entities = GameManager.instance.Beatmap.entities;
|
var entities = GameManager.instance.Beatmap.Entities;
|
||||||
|
|
||||||
float startBeat = cond.songPositionInBeats;
|
double startBeat = cond.songPositionInBeatsAsDouble;
|
||||||
float endBeat = Single.MaxValue;
|
double endBeat = double.MaxValue;
|
||||||
|
|
||||||
if (inactiveStart == -1f)
|
if (inactiveStart == -1f)
|
||||||
{
|
{
|
||||||
|
@ -123,7 +124,7 @@ namespace HeavenStudio.Games
|
||||||
for (int i = 0; i < marchStarts.Count; i++)
|
for (int i = 0; i < marchStarts.Count; i++)
|
||||||
{
|
{
|
||||||
var sampleBeat = marchStarts[i].beat;
|
var sampleBeat = marchStarts[i].beat;
|
||||||
if (cond.songPositionInBeats <= sampleBeat + 0.25f) // 0.25-beat buffer in case the start marching event is directly next to the game switch event.
|
if (cond.songPositionInBeatsAsDouble <= sampleBeat + 0.25f) // 0.25-beat buffer in case the start marching event is directly next to the game switch event.
|
||||||
{
|
{
|
||||||
startBeat = sampleBeat;
|
startBeat = sampleBeat;
|
||||||
break;
|
break;
|
||||||
|
@ -135,7 +136,7 @@ namespace HeavenStudio.Games
|
||||||
// Find the beat of the next step, assuming marching started at inactiveStart.
|
// Find the beat of the next step, assuming marching started at inactiveStart.
|
||||||
int stepsPassed = 0;
|
int stepsPassed = 0;
|
||||||
|
|
||||||
while (inactiveStart + (stepsPassed * 2f) < cond.songPositionInBeats)
|
while (inactiveStart + (stepsPassed * 2f) < cond.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
stepsPassed++;
|
stepsPassed++;
|
||||||
|
|
||||||
|
@ -210,7 +211,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<DynamicBeatmap.DynamicEntity> cuedMoleSounds = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> cuedMoleSounds = new List<RiqEntity>();
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
|
@ -219,12 +220,12 @@ namespace HeavenStudio.Games
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Mole sounds.
|
// Mole sounds.
|
||||||
var moleEvents = GameManager.instance.Beatmap.entities.FindAll(m => m.datamodel == "cropStomp/mole");
|
var moleEvents = GameManager.instance.Beatmap.Entities.FindAll(m => m.datamodel == "cropStomp/mole");
|
||||||
for (int i = 0; i < moleEvents.Count; i++)
|
for (int i = 0; i < moleEvents.Count; i++)
|
||||||
{
|
{
|
||||||
var moleEvent = moleEvents[i];
|
var moleEvent = moleEvents[i];
|
||||||
if (moleEvent["mute"]) continue;
|
if (moleEvent["mute"]) continue;
|
||||||
var timeToEvent = moleEvent.beat - cond.songPositionInBeats;
|
var timeToEvent = moleEvent.beat - cond.songPositionInBeatsAsDouble;
|
||||||
if (timeToEvent <= 4f && timeToEvent > 2f && !cuedMoleSounds.Contains(moleEvent))
|
if (timeToEvent <= 4f && timeToEvent > 2f && !cuedMoleSounds.Contains(moleEvent))
|
||||||
{
|
{
|
||||||
cuedMoleSounds.Add(moleEvent);
|
cuedMoleSounds.Add(moleEvent);
|
||||||
|
@ -328,7 +329,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartMarching(float beat)
|
public void StartMarching(double beat)
|
||||||
{
|
{
|
||||||
marchStartBeat = beat;
|
marchStartBeat = beat;
|
||||||
marchOffset = marchStartBeat % 1;
|
marchOffset = marchStartBeat % 1;
|
||||||
|
@ -348,7 +349,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
legsAnim.Play(stompAnim, 0, 0);
|
legsAnim.Play(stompAnim, 0, 0);
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("cropStomp/stomp");
|
SoundByte.PlayOneShotGame("cropStomp/stomp");
|
||||||
|
|
||||||
if (shakeTween != null)
|
if (shakeTween != null)
|
||||||
shakeTween.Kill(true);
|
shakeTween.Kill(true);
|
||||||
|
@ -359,29 +360,29 @@ namespace HeavenStudio.Games
|
||||||
isStepping = true;
|
isStepping = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SpawnVeggie(float beat, float startBeat, bool isMole)
|
private void SpawnVeggie(double beat, double startBeat, bool isMole)
|
||||||
{
|
{
|
||||||
var newVeggie = GameObject.Instantiate(isMole ? baseMole : baseVeggie, veggieHolder).GetComponent<Veggie>();
|
var newVeggie = GameObject.Instantiate(isMole ? baseMole : baseVeggie, veggieHolder).GetComponent<Veggie>();
|
||||||
|
|
||||||
newVeggie.targetBeat = beat;
|
newVeggie.targetBeat = beat;
|
||||||
|
|
||||||
var veggieX = (beat - startBeat) * -stepDistance / 2f;
|
var veggieX = (beat - startBeat) * -stepDistance / 2f;
|
||||||
newVeggie.transform.localPosition = new Vector3(veggieX, 0f, 0f);
|
newVeggie.transform.localPosition = new Vector3((float)veggieX, 0f, 0f);
|
||||||
newVeggie.Init();
|
newVeggie.Init();
|
||||||
newVeggie.gameObject.SetActive(true);
|
newVeggie.gameObject.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void MarchInactive(float beat)
|
public static void MarchInactive(double beat)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame == "cropStomp") //this function is only meant for making march sounds while the game is inactive
|
if (GameManager.instance.currentGame == "cropStomp") //this function is only meant for making march sounds while the game is inactive
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
inactiveStart = beat;
|
inactiveStart = beat;
|
||||||
DynamicBeatmap.DynamicEntity gameSwitch = GameManager.instance.Beatmap.entities.Find(c => c.beat >= beat && c.datamodel == "gameManager/switchGame/cropStomp");
|
RiqEntity gameSwitch = GameManager.instance.Beatmap.Entities.Find(c => c.beat >= beat && c.datamodel == "gameManager/switchGame/cropStomp");
|
||||||
if (gameSwitch == null)
|
if (gameSwitch == null)
|
||||||
return;
|
return;
|
||||||
int length = Mathf.CeilToInt((gameSwitch.beat - beat)/2);
|
int length = (int)Math.Ceiling((gameSwitch.beat - beat)/2);
|
||||||
MultiSound.Sound[] sounds = new MultiSound.Sound[length];
|
MultiSound.Sound[] sounds = new MultiSound.Sound[length];
|
||||||
for(int i = 0; i < length; i++)
|
for(int i = 0; i < length; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,7 +8,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
{
|
{
|
||||||
public class Farmer : MonoBehaviour
|
public class Farmer : MonoBehaviour
|
||||||
{
|
{
|
||||||
public float nextStompBeat;
|
public double nextStompBeat;
|
||||||
|
|
||||||
private CropStomp game;
|
private CropStomp game;
|
||||||
|
|
||||||
|
|
|
@ -20,15 +20,15 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
public BezierCurve3D curve;
|
public BezierCurve3D curve;
|
||||||
private BezierCurve3D hitCurve;
|
private BezierCurve3D hitCurve;
|
||||||
|
|
||||||
public float targetBeat;
|
public double targetBeat;
|
||||||
private float stompedBeat;
|
private double stompedBeat;
|
||||||
private float pickedBeat;
|
private double pickedBeat;
|
||||||
private float pickTime = 1f;
|
private float pickTime = 1f;
|
||||||
private int veggieState = 0;
|
private int veggieState = 0;
|
||||||
private bool boinked; // Player got barely when trying to pick.
|
private bool boinked; // Player got barely when trying to pick.
|
||||||
private bool pickEligible = true;
|
private bool pickEligible = true;
|
||||||
|
|
||||||
private float landBeat;
|
private double landBeat;
|
||||||
|
|
||||||
private Tween squashTween;
|
private Tween squashTween;
|
||||||
|
|
||||||
|
@ -137,9 +137,9 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
var key2Pos = key2.Position;
|
var key2Pos = key2.Position;
|
||||||
key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z);
|
key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z);
|
||||||
|
|
||||||
pickedBeat = Conductor.instance.songPositionInBeats;
|
pickedBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
|
|
||||||
MissedUpdate();
|
MissedUpdate();
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
veggieState = -1;
|
veggieState = -1;
|
||||||
|
|
||||||
if (!isMole)
|
if (!isMole)
|
||||||
Jukebox.PlayOneShotGame("cropStomp/veggieMiss");
|
SoundByte.PlayOneShotGame("cropStomp/veggieMiss");
|
||||||
caller.Disable();
|
caller.Disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
game.ScheduleInput(targetBeat, isMole ? 0.5f : 1f, InputType.STANDARD_UP, PickJust, PickMiss, Out);
|
game.ScheduleInput(targetBeat, isMole ? 0.5f : 1f, InputType.STANDARD_UP, PickJust, PickMiss, Out);
|
||||||
targetBeat = targetBeat + (isMole ? 0.5f : 1f);
|
targetBeat = targetBeat + (isMole ? 0.5f : 1f);
|
||||||
|
|
||||||
stompedBeat = cond.songPositionInBeats;
|
stompedBeat = cond.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
landBeat = targetBeat + (float)cond.SecsToBeats(Minigame.EndTime()-1, cond.GetBpmAtBeat(targetBeat));
|
landBeat = targetBeat + (float)cond.SecsToBeats(Minigame.EndTime()-1, cond.GetBpmAtBeat(targetBeat));
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
var keyPos = key1.Position;
|
var keyPos = key1.Position;
|
||||||
key1.Position = new Vector3(keyPos.x, veggieTrans.position.y, keyPos.z);
|
key1.Position = new Vector3(keyPos.x, veggieTrans.position.y, keyPos.z);
|
||||||
|
|
||||||
pickedBeat = Conductor.instance.songPositionInBeats;
|
pickedBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
if (!isMole)
|
if (!isMole)
|
||||||
{
|
{
|
||||||
|
@ -283,7 +283,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
new BeatAction.Action(pickedBeat + pickTime, delegate { GameObject.Destroy(gameObject); })
|
new BeatAction.Action(pickedBeat + pickTime, delegate { GameObject.Destroy(gameObject); })
|
||||||
});
|
});
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("cropStomp/veggieKay");
|
SoundByte.PlayOneShotGame("cropStomp/veggieKay");
|
||||||
|
|
||||||
hitCurve = game.pickCurve;
|
hitCurve = game.pickCurve;
|
||||||
}
|
}
|
||||||
|
@ -294,7 +294,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
new BeatAction.Action(pickedBeat + pickTime, delegate { GameObject.Destroy(gameObject); })
|
new BeatAction.Action(pickedBeat + pickTime, delegate { GameObject.Destroy(gameObject); })
|
||||||
});
|
});
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("cropStomp/GEUH");
|
SoundByte.PlayOneShotGame("cropStomp/GEUH");
|
||||||
|
|
||||||
hitCurve = game.moleCurve;
|
hitCurve = game.moleCurve;
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,7 @@ namespace HeavenStudio.Games
|
||||||
[SerializeField] private Student student;
|
[SerializeField] private Student student;
|
||||||
[SerializeField] private GameObject djYellow;
|
[SerializeField] private GameObject djYellow;
|
||||||
private Animator djYellowAnim;
|
private Animator djYellowAnim;
|
||||||
private float lastReportedBeat = 0f;
|
private double lastReportedBeat = 0f;
|
||||||
public DJYellow djYellowScript;
|
public DJYellow djYellowScript;
|
||||||
|
|
||||||
[Header("Properties")]
|
[Header("Properties")]
|
||||||
|
@ -121,10 +121,10 @@ namespace HeavenStudio.Games
|
||||||
public bool djYellowHolding;
|
public bool djYellowHolding;
|
||||||
public bool andStop;
|
public bool andStop;
|
||||||
public bool goBop;
|
public bool goBop;
|
||||||
public float beatOfInstance;
|
public double beatOfInstance;
|
||||||
private bool djYellowBopLeft;
|
private bool djYellowBopLeft;
|
||||||
public bool shouldBeHolding = false;
|
public bool shouldBeHolding = false;
|
||||||
public float smileBeat = -10f;
|
public double smileBeat = double.MinValue;
|
||||||
|
|
||||||
public static DJSchool instance { get; private set; }
|
public static DJSchool instance { get; private set; }
|
||||||
|
|
||||||
|
@ -138,26 +138,26 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
//For inactive game purposes
|
//For inactive game purposes
|
||||||
static float wantBreak = Single.MinValue;
|
static double wantBreak = double.MinValue;
|
||||||
static float wantAndStop = Single.MinValue;
|
static double wantAndStop = double.MinValue;
|
||||||
static float wantDJVoiceLines = Single.MinValue;
|
static double wantDJVoiceLines = double.MinValue;
|
||||||
|
|
||||||
public override void OnGameSwitch(float beat)
|
public override void OnGameSwitch(double beat)
|
||||||
{
|
{
|
||||||
if (wantBreak != Single.MinValue)
|
if (wantBreak != double.MinValue)
|
||||||
{
|
{
|
||||||
BreakCmon(wantBreak, 0, false, false);
|
BreakCmon(wantBreak, 0, false, false);
|
||||||
wantBreak = Single.MinValue;
|
wantBreak = double.MinValue;
|
||||||
}
|
}
|
||||||
else if(wantAndStop != Single.MinValue)
|
else if(wantAndStop != double.MinValue)
|
||||||
{
|
{
|
||||||
AndStop(wantAndStop, false, false);
|
AndStop(wantAndStop, false, false);
|
||||||
wantAndStop = Single.MinValue;
|
wantAndStop = double.MinValue;
|
||||||
}
|
}
|
||||||
else if(wantDJVoiceLines != Single.MinValue)
|
else if(wantDJVoiceLines != double.MinValue)
|
||||||
{
|
{
|
||||||
VoiceLines(wantDJVoiceLines, 0);
|
VoiceLines(wantDJVoiceLines, 0);
|
||||||
wantDJVoiceLines = Single.MinValue;
|
wantDJVoiceLines = double.MinValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
//if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1))
|
//if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1))
|
||||||
//{
|
//{
|
||||||
// if (cond.songPositionInBeats >= bop.startBeat && cond.songPositionInBeats < bop.startBeat + bop.length)
|
// if (cond.songPositionInBeatsAsDouble >= bop.startBeat && cond.songPositionInBeatsAsDouble < bop.startBeat + bop.length)
|
||||||
// {
|
// {
|
||||||
// if (student.anim.IsAnimationNotPlaying())
|
// if (student.anim.IsAnimationNotPlaying())
|
||||||
// {
|
// {
|
||||||
|
@ -245,9 +245,9 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (Conductor.instance.songPositionInBeats < lastReportedBeat)
|
else if (Conductor.instance.songPositionInBeatsAsDouble < lastReportedBeat)
|
||||||
{
|
{
|
||||||
lastReportedBeat = Mathf.Round(Conductor.instance.songPositionInBeats);
|
lastReportedBeat = Math.Round(Conductor.instance.songPositionInBeatsAsDouble);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(PlayerInput.Pressed() && !IsExpectingInputNow() && !student.isHolding) //Start hold miss
|
if(PlayerInput.Pressed() && !IsExpectingInputNow() && !student.isHolding) //Start hold miss
|
||||||
|
@ -287,7 +287,7 @@ namespace HeavenStudio.Games
|
||||||
shouldBeHolding = true;
|
shouldBeHolding = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, float length, bool isBopping, bool autoBop)
|
public void Bop(double beat, float length, bool isBopping, bool autoBop)
|
||||||
{
|
{
|
||||||
goBop = autoBop;
|
goBop = autoBop;
|
||||||
if (isBopping)
|
if (isBopping)
|
||||||
|
@ -314,7 +314,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
if (!andStop && !djYellowHolding)
|
if (!andStop && !djYellowHolding)
|
||||||
{
|
{
|
||||||
float normalizedSmileBeat = Conductor.instance.GetPositionFromBeat(smileBeat, 3f);
|
double normalizedSmileBeat = Conductor.instance.GetPositionFromBeat(smileBeat, 3f);
|
||||||
if (normalizedSmileBeat >= 0 && normalizedSmileBeat <= 1f) djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.Happy);
|
if (normalizedSmileBeat >= 0 && normalizedSmileBeat <= 1f) djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.Happy);
|
||||||
else if (!djYellowScript.HeadSpriteCheck(DJYellow.DJExpression.CrossEyed)) djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.NeutralLeft);
|
else if (!djYellowScript.HeadSpriteCheck(DJYellow.DJExpression.CrossEyed)) djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.NeutralLeft);
|
||||||
djYellowScript.Reverse((normalizedSmileBeat >= 0 && normalizedSmileBeat <= 1f) || djYellowScript.HeadSpriteCheck(DJYellow.DJExpression.CrossEyed));
|
djYellowScript.Reverse((normalizedSmileBeat >= 0 && normalizedSmileBeat <= 1f) || djYellowScript.HeadSpriteCheck(DJYellow.DJExpression.CrossEyed));
|
||||||
|
@ -339,7 +339,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BreakCmon(float beat, int type, bool ooh, bool doSound = true)
|
public void BreakCmon(double beat, int type, bool ooh, bool doSound = true)
|
||||||
{
|
{
|
||||||
if (djYellowHolding) return;
|
if (djYellowHolding) return;
|
||||||
|
|
||||||
|
@ -404,7 +404,7 @@ namespace HeavenStudio.Games
|
||||||
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, student.OnHitHold, student.OnMissHold, student.OnEmpty);
|
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, student.OnHitHold, student.OnMissHold, student.OnEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AndStop(float beat, bool ooh, bool doSound = true)
|
public void AndStop(double beat, bool ooh, bool doSound = true)
|
||||||
{
|
{
|
||||||
if (djYellowHolding) return;
|
if (djYellowHolding) return;
|
||||||
|
|
||||||
|
@ -427,7 +427,7 @@ namespace HeavenStudio.Games
|
||||||
new BeatAction.Action(beat + 0.5f, delegate
|
new BeatAction.Action(beat + 0.5f, delegate
|
||||||
{
|
{
|
||||||
djYellow.GetComponent<Animator>().DoScaledAnimationAsync("BreakCmon", 0.5f);
|
djYellow.GetComponent<Animator>().DoScaledAnimationAsync("BreakCmon", 0.5f);
|
||||||
float normalizedSmileBeat = Conductor.instance.GetPositionFromBeat(smileBeat, 3f);
|
double normalizedSmileBeat = Conductor.instance.GetPositionFromBeat(smileBeat, 3f);
|
||||||
if (normalizedSmileBeat >= 0 && normalizedSmileBeat <= 1f)
|
if (normalizedSmileBeat >= 0 && normalizedSmileBeat <= 1f)
|
||||||
{
|
{
|
||||||
djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.Happy);
|
djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.Happy);
|
||||||
|
@ -450,7 +450,7 @@ namespace HeavenStudio.Games
|
||||||
ScheduleInput(beat, 1.5f, InputType.STANDARD_DOWN, student.OnHitHold, student.OnMissHold, student.OnEmpty);
|
ScheduleInput(beat, 1.5f, InputType.STANDARD_DOWN, student.OnHitHold, student.OnMissHold, student.OnEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ScratchoHey(float beat, int type, bool remix4, bool cheer)
|
public void ScratchoHey(double beat, int type, bool remix4, bool cheer)
|
||||||
{
|
{
|
||||||
string[] sounds = new string[] { };
|
string[] sounds = new string[] { };
|
||||||
|
|
||||||
|
@ -539,7 +539,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
Student.soundFX = toggle;
|
Student.soundFX = toggle;
|
||||||
}
|
}
|
||||||
public static void VoiceLines(float beat, int type)
|
public static void VoiceLines(double beat, int type)
|
||||||
{
|
{
|
||||||
string[] sounds;
|
string[] sounds;
|
||||||
var sound = new MultiSound.Sound[] { };
|
var sound = new MultiSound.Sound[] { };
|
||||||
|
@ -592,18 +592,19 @@ namespace HeavenStudio.Games
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
Jukebox.PlayOneShotGame("djSchool/yay", forcePlay: true);
|
SoundByte.PlayOneShotGame("djSchool/yay", forcePlay: true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Inactive Game Commands
|
#region Inactive Game Commands
|
||||||
public static void WarnBreakCmon(float beat, int type, bool ooh)
|
public static void WarnBreakCmon(double beat, int type, bool ooh)
|
||||||
{
|
{
|
||||||
string[] sounds = type switch {
|
string[] sounds = type switch {
|
||||||
0 => new string[] { "djSchool/breakCmon1", "djSchool/breakCmon2", "djSchool/ooh" },
|
0 => new string[] { "djSchool/breakCmon1", "djSchool/breakCmon2", "djSchool/ooh" },
|
||||||
1 => new string[] { "djSchool/breakCmonAlt1", "djSchool/breakCmonAlt2", "djSchool/oohAlt" },
|
1 => new string[] { "djSchool/breakCmonAlt1", "djSchool/breakCmonAlt2", "djSchool/oohAlt" },
|
||||||
2 => new string[] { "djSchool/breakCmonLoud1", "djSchool/breakCmonLoud2", "djSchool/oohLoud" },
|
2 => new string[] { "djSchool/breakCmonLoud1", "djSchool/breakCmonLoud2", "djSchool/oohLoud" },
|
||||||
|
_ => new string[] { "djSchool/breakCmon1", "djSchool/breakCmon2", "djSchool/ooh" },
|
||||||
};
|
};
|
||||||
|
|
||||||
List<MultiSound.Sound> sound = new List<MultiSound.Sound>()
|
List<MultiSound.Sound> sound = new List<MultiSound.Sound>()
|
||||||
|
@ -618,7 +619,7 @@ namespace HeavenStudio.Games
|
||||||
wantBreak = beat;
|
wantBreak = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WarnAndStop(float beat, bool ooh)
|
public static void WarnAndStop(double beat, bool ooh)
|
||||||
{
|
{
|
||||||
List<MultiSound.Sound> sound = new List<MultiSound.Sound>()
|
List<MultiSound.Sound> sound = new List<MultiSound.Sound>()
|
||||||
{
|
{
|
||||||
|
|
|
@ -107,7 +107,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
||||||
missed = false;
|
missed = false;
|
||||||
shouldBeHolding = true;
|
shouldBeHolding = true;
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("djSchool/recordStop");
|
SoundByte.PlayOneShotGame("djSchool/recordStop");
|
||||||
|
|
||||||
anim.DoScaledAnimationAsync("Hold", 0.5f);
|
anim.DoScaledAnimationAsync("Hold", 0.5f);
|
||||||
tableAnim.DoScaledAnimationAsync("Student_Turntable_StartHold", 0.5f);
|
tableAnim.DoScaledAnimationAsync("Student_Turntable_StartHold", 0.5f);
|
||||||
|
@ -124,7 +124,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
||||||
//isHolding = true;
|
//isHolding = true;
|
||||||
if (canBoo)
|
if (canBoo)
|
||||||
{
|
{
|
||||||
Sound booSound = Jukebox.PlayOneShotGame("djSchool/boo", -1, 1, 0.8f);
|
Sound booSound = SoundByte.PlayOneShotGame("djSchool/boo", -1, 1, 0.8f);
|
||||||
CancelInvoke();
|
CancelInvoke();
|
||||||
canBoo = false;
|
canBoo = false;
|
||||||
Invoke("EnableBoo", booSound.clip.length);
|
Invoke("EnableBoo", booSound.clip.length);
|
||||||
|
@ -145,7 +145,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
||||||
|
|
||||||
missed = true;
|
missed = true;
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("djSchool/recordStop");
|
SoundByte.PlayOneShotGame("djSchool/recordStop");
|
||||||
|
|
||||||
anim.DoScaledAnimationAsync("Hold", 0.5f);
|
anim.DoScaledAnimationAsync("Hold", 0.5f);
|
||||||
tableAnim.DoScaledAnimationAsync("Student_Turntable_StartHold", 0.5f);
|
tableAnim.DoScaledAnimationAsync("Student_Turntable_StartHold", 0.5f);
|
||||||
|
@ -170,7 +170,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
||||||
anim.DoScaledAnimationAsync("Unhold", 0.5f);
|
anim.DoScaledAnimationAsync("Unhold", 0.5f);
|
||||||
if (canBoo)
|
if (canBoo)
|
||||||
{
|
{
|
||||||
Sound booSound = Jukebox.PlayOneShotGame("djSchool/boo", -1, 1, 0.8f);
|
Sound booSound = SoundByte.PlayOneShotGame("djSchool/boo", -1, 1, 0.8f);
|
||||||
CancelInvoke();
|
CancelInvoke();
|
||||||
canBoo = false;
|
canBoo = false;
|
||||||
Invoke("EnableBoo", booSound.clip.length);
|
Invoke("EnableBoo", booSound.clip.length);
|
||||||
|
@ -190,7 +190,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
||||||
public void OnHitSwipeCheer(PlayerActionEvent caller, float beat)
|
public void OnHitSwipeCheer(PlayerActionEvent caller, float beat)
|
||||||
{
|
{
|
||||||
OnHitSwipe(caller, beat);
|
OnHitSwipe(caller, beat);
|
||||||
Jukebox.PlayOneShotGame("djSchool/cheer", caller.timer + caller.startBeat + 1f, 1, 0.8f);
|
SoundByte.PlayOneShotGame("djSchool/cheer", caller.timer + caller.startBeat + 1f, 1, 0.8f);
|
||||||
}
|
}
|
||||||
public void OnHitSwipe(PlayerActionEvent caller, float beat)
|
public void OnHitSwipe(PlayerActionEvent caller, float beat)
|
||||||
{
|
{
|
||||||
|
@ -202,7 +202,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
||||||
|
|
||||||
missed = false;
|
missed = false;
|
||||||
shouldBeHolding = false;
|
shouldBeHolding = false;
|
||||||
Jukebox.PlayOneShotGame("djSchool/recordSwipe");
|
SoundByte.PlayOneShotGame("djSchool/recordSwipe");
|
||||||
FlashFX(false);
|
FlashFX(false);
|
||||||
swiping = true;
|
swiping = true;
|
||||||
|
|
||||||
|
@ -225,7 +225,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OnMissSwipeForPlayerInput(caller.timer + caller.startBeat + 1f);
|
OnMissSwipeForPlayerInput(caller.timer + caller.startBeat + 1f);
|
||||||
Jukebox.PlayOneShotGame("djSchool/recordSwipe");
|
SoundByte.PlayOneShotGame("djSchool/recordSwipe");
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat, delegate { anim.Play("Swipe", 0, 0); }),
|
new BeatAction.Action(beat, delegate { anim.Play("Swipe", 0, 0); }),
|
||||||
|
@ -249,7 +249,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
||||||
mixer.audioMixer.FindSnapshot("Main").TransitionTo(.01f);
|
mixer.audioMixer.FindSnapshot("Main").TransitionTo(.01f);
|
||||||
if (canBoo)
|
if (canBoo)
|
||||||
{
|
{
|
||||||
Sound booSound = Jukebox.PlayOneShotGame("djSchool/boo", caller.timer + caller.startBeat + 1f, 1, 0.8f);
|
Sound booSound = SoundByte.PlayOneShotGame("djSchool/boo", caller.timer + caller.startBeat + 1f, 1, 0.8f);
|
||||||
CancelInvoke();
|
CancelInvoke();
|
||||||
canBoo = false;
|
canBoo = false;
|
||||||
Invoke("EnableBoo", booSound.clip.length);
|
Invoke("EnableBoo", booSound.clip.length);
|
||||||
|
@ -268,7 +268,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnMissSwipeForPlayerInput(float beat)
|
public void OnMissSwipeForPlayerInput(double beat)
|
||||||
{
|
{
|
||||||
isHolding = false;
|
isHolding = false;
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,7 @@ namespace HeavenStudio.Games
|
||||||
static List<QueuedThrow> queuedThrows = new List<QueuedThrow>();
|
static List<QueuedThrow> queuedThrows = new List<QueuedThrow>();
|
||||||
struct QueuedThrow
|
struct QueuedThrow
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public int direction;
|
public int direction;
|
||||||
public int typeL;
|
public int typeL;
|
||||||
public int typeR;
|
public int typeR;
|
||||||
|
@ -137,7 +137,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
[SerializeField] Sprite[] ObjectTypes;
|
[SerializeField] Sprite[] ObjectTypes;
|
||||||
|
|
||||||
private float lastReportedBeat = 0f;
|
private double lastReportedBeat = 0f;
|
||||||
private bool birdOnScreen = false;
|
private bool birdOnScreen = false;
|
||||||
static bool dontBop = false;
|
static bool dontBop = false;
|
||||||
private const string sfxNum = "dogNinja/";
|
private const string sfxNum = "dogNinja/";
|
||||||
|
@ -211,7 +211,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
DogAnim.DoScaledAnimationAsync(slice, 0.5f);
|
DogAnim.DoScaledAnimationAsync(slice, 0.5f);
|
||||||
Jukebox.PlayOneShotGame("dogNinja/whiff");
|
SoundByte.PlayOneShotGame("dogNinja/whiff");
|
||||||
DogAnim.SetBool("needPrepare", false);
|
DogAnim.SetBool("needPrepare", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,12 +231,12 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, bool bop)
|
public void Bop(double beat, bool bop)
|
||||||
{
|
{
|
||||||
dontBop = !bop;
|
dontBop = !bop;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void QueueObject(float beat, int direction, int typeL, int typeR, bool prepare, bool muteThrow)
|
public static void QueueObject(double beat, int direction, int typeL, int typeR, bool prepare, bool muteThrow)
|
||||||
{
|
{
|
||||||
int ObjSprite = 1;
|
int ObjSprite = 1;
|
||||||
if (typeL == 0 || typeR == 0) {
|
if (typeL == 0 || typeR == 0) {
|
||||||
|
@ -249,14 +249,14 @@ namespace HeavenStudio.Games
|
||||||
if (direction is 0 or 2) {
|
if (direction is 0 or 2) {
|
||||||
sfxNumL += typeL < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeL);
|
sfxNumL += typeL < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeL);
|
||||||
if (typeL == 0) typeL = ObjSprite;
|
if (typeL == 0) typeL = ObjSprite;
|
||||||
if (!muteThrow) Jukebox.PlayOneShotGame(sfxNumL+"1", forcePlay: true);
|
if (!muteThrow) SoundByte.PlayOneShotGame(sfxNumL+"1", forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
string sfxNumR = "dogNinja/";
|
string sfxNumR = "dogNinja/";
|
||||||
if (direction is 1 or 2) {
|
if (direction is 1 or 2) {
|
||||||
sfxNumR += typeR < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeR);
|
sfxNumR += typeR < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeR);
|
||||||
if (typeR == 0) typeR = ObjSprite;
|
if (typeR == 0) typeR = ObjSprite;
|
||||||
if (!(direction == 2 && typeL == typeR) && !muteThrow) Jukebox.PlayOneShotGame(sfxNumR+"1", forcePlay: true);
|
if (!(direction == 2 && typeL == typeR) && !muteThrow) SoundByte.PlayOneShotGame(sfxNumR+"1", forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
queuedThrows.Add(new QueuedThrow() {
|
queuedThrows.Add(new QueuedThrow() {
|
||||||
|
@ -271,7 +271,7 @@ namespace HeavenStudio.Games
|
||||||
if (prepare) DogNinja.instance.DogAnim.SetBool("needPrepare", true);
|
if (prepare) DogNinja.instance.DogAnim.SetBool("needPrepare", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ThrowObject(float beat, int direction, int typeL, int typeR, string sfxNumL, string sfxNumR)
|
public void ThrowObject(double beat, int direction, int typeL, int typeR, string sfxNumL, string sfxNumR)
|
||||||
{
|
{
|
||||||
// instantiate a game object and give it its variables
|
// instantiate a game object and give it its variables
|
||||||
if (direction is 0 or 2) {
|
if (direction is 0 or 2) {
|
||||||
|
@ -299,13 +299,13 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CutEverything(float beat, bool sound, string customText)
|
public void CutEverything(double beat, bool sound, string customText)
|
||||||
{
|
{
|
||||||
// plays one anim with sfx when it's not on screen, plays a different anim with no sfx when on screen. ez
|
// plays one anim with sfx when it's not on screen, plays a different anim with no sfx when on screen. ez
|
||||||
if (!birdOnScreen) {
|
if (!birdOnScreen) {
|
||||||
FullBird.SetActive(true);
|
FullBird.SetActive(true);
|
||||||
if (sound) {
|
if (sound) {
|
||||||
Jukebox.PlayOneShotGame(sfxNum+"bird_flap");
|
SoundByte.PlayOneShotGame(sfxNum+"bird_flap");
|
||||||
}
|
}
|
||||||
BirdAnim.Play("FlyIn", 0, 0);
|
BirdAnim.Play("FlyIn", 0, 0);
|
||||||
birdOnScreen = true;
|
birdOnScreen = true;
|
||||||
|
@ -316,13 +316,13 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Prepare(float beat)
|
public void Prepare(double beat)
|
||||||
{
|
{
|
||||||
if (!DogAnim.GetBool("needPrepare")) DogAnim.DoScaledAnimationAsync("Prepare", 0.5f);
|
if (!DogAnim.GetBool("needPrepare")) DogAnim.DoScaledAnimationAsync("Prepare", 0.5f);
|
||||||
DogAnim.SetBool("needPrepare", true);
|
DogAnim.SetBool("needPrepare", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HereWeGo(float beat)
|
public void HereWeGo(double beat)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[] {
|
MultiSound.Play(new MultiSound.Sound[] {
|
||||||
new MultiSound.Sound(sfxNum+"here", beat),
|
new MultiSound.Sound(sfxNum+"here", beat),
|
||||||
|
@ -331,7 +331,7 @@ namespace HeavenStudio.Games
|
||||||
}, forcePlay: true);
|
}, forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HereWeGoInactive(float beat)
|
public static void HereWeGoInactive(double beat)
|
||||||
{
|
{
|
||||||
DogNinja.instance.HereWeGo(beat);
|
DogNinja.instance.HereWeGo(beat);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,12 +10,12 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||||
{
|
{
|
||||||
public class SpawnHalves : MonoBehaviour
|
public class SpawnHalves : MonoBehaviour
|
||||||
{
|
{
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
public Vector3 objPos;
|
public Vector3 objPos;
|
||||||
private Vector3 posModifier;
|
private Vector3 posModifier;
|
||||||
public bool lefty;
|
public bool lefty;
|
||||||
float bpmModifier;
|
float bpmModifier;
|
||||||
float songPos;
|
double songPos;
|
||||||
|
|
||||||
[SerializeField] float rotSpeed;
|
[SerializeField] float rotSpeed;
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||||
{
|
{
|
||||||
game = DogNinja.instance;
|
game = DogNinja.instance;
|
||||||
bpmModifier = Conductor.instance.songBpm / 100;
|
bpmModifier = Conductor.instance.songBpm / 100;
|
||||||
songPos = Conductor.instance.songPositionInBeats;
|
songPos = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||||
{
|
{
|
||||||
public class ThrowObject : MonoBehaviour
|
public class ThrowObject : MonoBehaviour
|
||||||
{
|
{
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
public int type;
|
public int type;
|
||||||
public bool fromLeft;
|
public bool fromLeft;
|
||||||
public bool shouldSfx = true;
|
public bool shouldSfx = true;
|
||||||
|
@ -19,7 +19,7 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||||
|
|
||||||
private Vector3 objPos;
|
private Vector3 objPos;
|
||||||
private bool isActive = true;
|
private bool isActive = true;
|
||||||
private float barelyTime;
|
private double barelyTime;
|
||||||
|
|
||||||
[Header("Animators")]
|
[Header("Animators")]
|
||||||
Animator DogAnim;
|
Animator DogAnim;
|
||||||
|
@ -88,7 +88,7 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||||
};
|
};
|
||||||
|
|
||||||
DogAnim.DoScaledAnimationAsync(slice, 0.5f);
|
DogAnim.DoScaledAnimationAsync(slice, 0.5f);
|
||||||
if (shouldSfx) Jukebox.PlayOneShotGame(sfxNum+"2");
|
if (shouldSfx) SoundByte.PlayOneShotGame(sfxNum+"2");
|
||||||
|
|
||||||
game.WhichLeftHalf.sprite = objectLeftHalves[type-1];
|
game.WhichLeftHalf.sprite = objectLeftHalves[type-1];
|
||||||
game.WhichRightHalf.sprite = objectRightHalves[type-1];
|
game.WhichRightHalf.sprite = objectRightHalves[type-1];
|
||||||
|
@ -109,17 +109,18 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||||
private void JustSlice()
|
private void JustSlice()
|
||||||
{
|
{
|
||||||
isActive = false;
|
isActive = false;
|
||||||
barelyTime = Conductor.instance.songPositionInBeats;
|
barelyTime = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
string barely = "Barely" + direction switch
|
string barely = "Barely" + direction switch
|
||||||
{
|
{
|
||||||
0 => "Left",
|
0 => "Left",
|
||||||
1 => "Right",
|
1 => "Right",
|
||||||
2 => "Both",
|
2 => "Both",
|
||||||
|
_ => "Both",
|
||||||
};
|
};
|
||||||
|
|
||||||
DogAnim.DoScaledAnimationAsync(barely, 0.5f);
|
DogAnim.DoScaledAnimationAsync(barely, 0.5f);
|
||||||
Jukebox.PlayOneShotGame("dogNinja/barely");
|
SoundByte.PlayOneShotGame("dogNinja/barely");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Hit(PlayerActionEvent caller, float state)
|
private void Hit(PlayerActionEvent caller, float state)
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
@ -10,7 +12,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
{
|
{
|
||||||
private DoubleDate game;
|
private DoubleDate game;
|
||||||
private SuperCurveObject.Path path;
|
private SuperCurveObject.Path path;
|
||||||
private float pathStartBeat = float.MinValue;
|
private double pathStartBeat = double.MinValue;
|
||||||
private Conductor conductor;
|
private Conductor conductor;
|
||||||
private GameObject shadow;
|
private GameObject shadow;
|
||||||
|
|
||||||
|
@ -22,20 +24,20 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
float beat = conductor.songPositionInBeats;
|
double beat = conductor.songPositionInBeatsAsDouble;
|
||||||
float height = 0f;
|
double height = 0f;
|
||||||
if (pathStartBeat > float.MinValue)
|
if (pathStartBeat > double.MinValue)
|
||||||
{
|
{
|
||||||
Vector3 pos = GetPathPositionFromBeat(path, Mathf.Max(beat, pathStartBeat), out height, pathStartBeat);
|
Vector3 pos = GetPathPositionFromBeat(path, Math.Max(beat, pathStartBeat), out height, pathStartBeat);
|
||||||
transform.position = pos;
|
transform.position = pos;
|
||||||
float rot = GetPathValue("rot");
|
float rot = GetPathValue("rot");
|
||||||
transform.rotation = Quaternion.Euler(0f, 0f, transform.rotation.eulerAngles.z - (rot * Time.deltaTime * (1f/conductor.pitchedSecPerBeat)));
|
transform.rotation = Quaternion.Euler(0f, 0f, transform.rotation.eulerAngles.z - (rot * Time.deltaTime * (1f/conductor.pitchedSecPerBeat)));
|
||||||
}
|
}
|
||||||
shadow.transform.position = new Vector3(transform.position.x, Mathf.Min(transform.position.y - height, game.floorHeight), transform.position.z);
|
shadow.transform.position = new Vector3(transform.position.x, (float) Math.Min(transform.position.y - height, game.floorHeight), transform.position.z);
|
||||||
shadow.transform.localScale = Vector3.one * Mathf.Clamp(((transform.position.y) - game.shadowDepthScaleMin) / (game.shadowDepthScaleMax - game.shadowDepthScaleMin), 0f, 1f);
|
shadow.transform.localScale = Vector3.one * Mathf.Clamp(((transform.position.y) - game.shadowDepthScaleMin) / (game.shadowDepthScaleMax - game.shadowDepthScaleMin), 0f, 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(float beat)
|
public void Init(double beat)
|
||||||
{
|
{
|
||||||
game.ScheduleInput(beat, 1f, InputType.STANDARD_DOWN, Just, Miss, Empty);
|
game.ScheduleInput(beat, 1f, InputType.STANDARD_DOWN, Just, Miss, Empty);
|
||||||
path = game.GetPath("BasketBallIn");
|
path = game.GetPath("BasketBallIn");
|
||||||
|
@ -55,17 +57,17 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
{
|
{
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(conductor.songPositionInBeats + 3f, delegate
|
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 3f, delegate
|
||||||
{
|
{
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeats;
|
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
path = game.GetPath("BasketBallNg" + (state > 0 ? "Late" : "Early"));
|
path = game.GetPath("BasketBallNg" + (state > 0 ? "Late" : "Early"));
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
game.Kick(false);
|
game.Kick(false);
|
||||||
GetComponent<SpriteRenderer>().sortingOrder = 8;
|
GetComponent<SpriteRenderer>().sortingOrder = 8;
|
||||||
return;
|
return;
|
||||||
|
@ -76,15 +78,15 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
void Hit()
|
void Hit()
|
||||||
{
|
{
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeats;
|
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
||||||
path = game.GetPath("BasketBallJust");
|
path = game.GetPath("BasketBallJust");
|
||||||
game.Kick();
|
game.Kick();
|
||||||
Jukebox.PlayOneShotGame("doubleDate/kick");
|
SoundByte.PlayOneShotGame("doubleDate/kick");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Miss(PlayerActionEvent caller)
|
void Miss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("doubleDate/weasel_hide");
|
SoundByte.PlayOneShotGame("doubleDate/weasel_hide");
|
||||||
game.MissKick(pathStartBeat + 2.25f);
|
game.MissKick(pathStartBeat + 2.25f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,13 +75,13 @@ namespace HeavenStudio.Games
|
||||||
[SerializeField] public float shadowDepthScaleMin;
|
[SerializeField] public float shadowDepthScaleMin;
|
||||||
[SerializeField] public float shadowDepthScaleMax;
|
[SerializeField] public float shadowDepthScaleMax;
|
||||||
[SerializeField] SuperCurveObject.Path[] ballBouncePaths;
|
[SerializeField] SuperCurveObject.Path[] ballBouncePaths;
|
||||||
float lastGirlGacha = float.MinValue;
|
double lastGirlGacha = double.MinValue;
|
||||||
bool shouldBop = true;
|
bool shouldBop = true;
|
||||||
bool canBop = true;
|
bool canBop = true;
|
||||||
GameEvent bop = new GameEvent();
|
GameEvent bop = new GameEvent();
|
||||||
public static DoubleDate instance;
|
public static DoubleDate instance;
|
||||||
public static List<QueuedBall> queuedBalls = new List<QueuedBall>();
|
public static List<QueuedBall> queuedBalls = new List<QueuedBall>();
|
||||||
[NonSerialized] public float lastHitWeasel = float.MinValue;
|
[NonSerialized] public double lastHitWeasel = double.MinValue;
|
||||||
|
|
||||||
public enum BallType
|
public enum BallType
|
||||||
{
|
{
|
||||||
|
@ -92,7 +92,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public struct QueuedBall
|
public struct QueuedBall
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public BallType type;
|
public BallType type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnPlay(float beat)
|
public override void OnPlay(double beat)
|
||||||
{
|
{
|
||||||
queuedBalls.Clear();
|
queuedBalls.Clear();
|
||||||
}
|
}
|
||||||
|
@ -169,7 +169,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
|
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("doubleDate/kick_whiff");
|
SoundByte.PlayOneShotGame("doubleDate/kick_whiff");
|
||||||
Kick(true, true, false);
|
Kick(true, true, false);
|
||||||
}
|
}
|
||||||
clouds.transform.position = Vector3.left * ((Time.realtimeSinceStartup * cloudSpeed) % cloudDistance);
|
clouds.transform.position = Vector3.left * ((Time.realtimeSinceStartup * cloudSpeed) % cloudDistance);
|
||||||
|
@ -180,7 +180,7 @@ namespace HeavenStudio.Games
|
||||||
canBop = go;
|
canBop = go;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, float length, bool goBop, bool autoBop)
|
public void Bop(double beat, float length, bool goBop, bool autoBop)
|
||||||
{
|
{
|
||||||
shouldBop = autoBop;
|
shouldBop = autoBop;
|
||||||
if (goBop)
|
if (goBop)
|
||||||
|
@ -201,7 +201,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
boyAnim.DoScaledAnimationAsync("IdleBop", 1f);
|
boyAnim.DoScaledAnimationAsync("IdleBop", 1f);
|
||||||
}
|
}
|
||||||
if (Conductor.instance.songPositionInBeats > lastGirlGacha)
|
if (Conductor.instance.songPositionInBeatsAsDouble > lastGirlGacha)
|
||||||
girlAnim.DoScaledAnimationAsync("GirlBop", 1f);
|
girlAnim.DoScaledAnimationAsync("GirlBop", 1f);
|
||||||
weasels.Bop();
|
weasels.Bop();
|
||||||
}
|
}
|
||||||
|
@ -214,7 +214,7 @@ namespace HeavenStudio.Games
|
||||||
if (jump)
|
if (jump)
|
||||||
{
|
{
|
||||||
weasels.Jump();
|
weasels.Jump();
|
||||||
lastGirlGacha = Conductor.instance.songPositionInBeats + 0.5f;
|
lastGirlGacha = Conductor.instance.songPositionInBeatsAsDouble + 0.5f;
|
||||||
girlAnim.DoScaledAnimationAsync("GirlLookUp", 0.5f);
|
girlAnim.DoScaledAnimationAsync("GirlLookUp", 0.5f);
|
||||||
}
|
}
|
||||||
else if (weaselsHappy) weasels.Happy();
|
else if (weaselsHappy) weasels.Happy();
|
||||||
|
@ -222,7 +222,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(Conductor.instance.songPositionInBeats + 1f, delegate
|
new BeatAction.Action(Conductor.instance.songPositionInBeatsAsDouble + 1f, delegate
|
||||||
{
|
{
|
||||||
leaves.Play();
|
leaves.Play();
|
||||||
treeAnim.DoScaledAnimationAsync("TreeRustle", 1f);
|
treeAnim.DoScaledAnimationAsync("TreeRustle", 1f);
|
||||||
|
@ -237,7 +237,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void QueueSoccerBall(float beat)
|
public static void QueueSoccerBall(double beat)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame != "doubleDate")
|
if (GameManager.instance.currentGame != "doubleDate")
|
||||||
{
|
{
|
||||||
|
@ -251,10 +251,10 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
instance.SpawnSoccerBall(beat);
|
instance.SpawnSoccerBall(beat);
|
||||||
}
|
}
|
||||||
Jukebox.PlayOneShotGame("doubleDate/soccerBounce", beat, forcePlay: true);
|
SoundByte.PlayOneShotGame("doubleDate/soccerBounce", beat, forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void QueueBasketBall(float beat)
|
public static void QueueBasketBall(double beat)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame != "doubleDate")
|
if (GameManager.instance.currentGame != "doubleDate")
|
||||||
{
|
{
|
||||||
|
@ -275,7 +275,7 @@ namespace HeavenStudio.Games
|
||||||
}, forcePlay: true);
|
}, forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void QueueFootBall(float beat)
|
public static void QueueFootBall(double beat)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame != "doubleDate")
|
if (GameManager.instance.currentGame != "doubleDate")
|
||||||
{
|
{
|
||||||
|
@ -296,31 +296,31 @@ namespace HeavenStudio.Games
|
||||||
}, forcePlay: true);
|
}, forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnSoccerBall(float beat)
|
public void SpawnSoccerBall(double beat)
|
||||||
{
|
{
|
||||||
SoccerBall spawnedBall = Instantiate(soccer, instance.transform).GetComponent<SoccerBall>();
|
SoccerBall spawnedBall = Instantiate(soccer, instance.transform).GetComponent<SoccerBall>();
|
||||||
spawnedBall.Init(beat);
|
spawnedBall.Init(beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnBasketBall(float beat)
|
public void SpawnBasketBall(double beat)
|
||||||
{
|
{
|
||||||
Basketball spawnedBall = Instantiate(basket, instance.transform).GetComponent<Basketball>();
|
Basketball spawnedBall = Instantiate(basket, instance.transform).GetComponent<Basketball>();
|
||||||
spawnedBall.Init(beat);
|
spawnedBall.Init(beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnFootBall(float beat)
|
public void SpawnFootBall(double beat)
|
||||||
{
|
{
|
||||||
Football spawnedBall = Instantiate(football, instance.transform).GetComponent<Football>();
|
Football spawnedBall = Instantiate(football, instance.transform).GetComponent<Football>();
|
||||||
spawnedBall.Init(beat);
|
spawnedBall.Init(beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MissKick(float beat, bool hit = false)
|
public void MissKick(double beat, bool hit = false)
|
||||||
{
|
{
|
||||||
lastGirlGacha = Conductor.instance.songPositionInBeats + 1.5f;
|
lastGirlGacha = Conductor.instance.songPositionInBeatsAsDouble + 1.5f;
|
||||||
girlAnim.DoScaledAnimationAsync("GirlSad", 0.5f);
|
girlAnim.DoScaledAnimationAsync("GirlSad", 0.5f);
|
||||||
if (hit)
|
if (hit)
|
||||||
{
|
{
|
||||||
lastHitWeasel = Conductor.instance.songPositionInBeats;
|
lastHitWeasel = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat - (0.25f/3f), delegate { weasels.Hit(beat); }),
|
new BeatAction.Action(beat - (0.25f/3f), delegate { weasels.Hit(beat); }),
|
||||||
|
@ -328,7 +328,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lastHitWeasel = Conductor.instance.songPositionInBeats;
|
lastHitWeasel = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat + 0.25, delegate { weasels.Hide(beat + 0.25f); }),
|
new BeatAction.Action(beat + 0.25, delegate { weasels.Hide(beat + 0.25f); }),
|
||||||
|
|
|
@ -42,7 +42,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Hide(float beat)
|
public void Hide(double beat)
|
||||||
{
|
{
|
||||||
if (notHit)
|
if (notHit)
|
||||||
{
|
{
|
||||||
|
@ -69,7 +69,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Hit(float beat)
|
public void Hit(double beat)
|
||||||
{
|
{
|
||||||
if (notHit)
|
if (notHit)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
@ -11,7 +12,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
private DoubleDate game;
|
private DoubleDate game;
|
||||||
|
|
||||||
private SuperCurveObject.Path path;
|
private SuperCurveObject.Path path;
|
||||||
private float pathStartBeat = float.MinValue;
|
private double pathStartBeat = double.MinValue;
|
||||||
private Conductor conductor;
|
private Conductor conductor;
|
||||||
private GameObject shadow;
|
private GameObject shadow;
|
||||||
|
|
||||||
|
@ -23,20 +24,20 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
float beat = conductor.songPositionInBeats;
|
double beat = conductor.songPositionInBeatsAsDouble;
|
||||||
float height = 0f;
|
double height = 0f;
|
||||||
if (pathStartBeat > float.MinValue)
|
if (pathStartBeat > double.MinValue)
|
||||||
{
|
{
|
||||||
Vector3 pos = GetPathPositionFromBeat(path, Mathf.Max(beat, pathStartBeat), out height, pathStartBeat);
|
Vector3 pos = GetPathPositionFromBeat(path, Math.Max(beat, pathStartBeat), out height, pathStartBeat);
|
||||||
transform.position = pos;
|
transform.position = pos;
|
||||||
float rot = GetPathValue("rot");
|
float rot = GetPathValue("rot");
|
||||||
transform.rotation = Quaternion.Euler(0f, 0f, transform.rotation.eulerAngles.z - (rot * Time.deltaTime * (1f/conductor.pitchedSecPerBeat)));
|
transform.rotation = Quaternion.Euler(0f, 0f, transform.rotation.eulerAngles.z - (rot * Time.deltaTime * (1f/conductor.pitchedSecPerBeat)));
|
||||||
}
|
}
|
||||||
shadow.transform.position = new Vector3(transform.position.x, Mathf.Min(transform.position.y - height, game.floorHeight), transform.position.z);
|
shadow.transform.position = new Vector3(transform.position.x, (float) Math.Min(transform.position.y - height, game.floorHeight), transform.position.z);
|
||||||
shadow.transform.localScale = Vector3.one * Mathf.Clamp(((transform.position.y) - game.shadowDepthScaleMin) / (game.shadowDepthScaleMax - game.shadowDepthScaleMin), 0f, 1f);
|
shadow.transform.localScale = Vector3.one * Mathf.Clamp(((transform.position.y) - game.shadowDepthScaleMin) / (game.shadowDepthScaleMax - game.shadowDepthScaleMin), 0f, 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(float beat)
|
public void Init(double beat)
|
||||||
{
|
{
|
||||||
game.ScheduleInput(beat, 1.5f, InputType.STANDARD_DOWN, Just, Miss, Empty);
|
game.ScheduleInput(beat, 1.5f, InputType.STANDARD_DOWN, Just, Miss, Empty);
|
||||||
path = game.GetPath("FootBallInNoHit"); // there's a second path for footballs that hit the weasels, use that if the weasels haven't been hit recently
|
path = game.GetPath("FootBallInNoHit"); // there's a second path for footballs that hit the weasels, use that if the weasels haven't been hit recently
|
||||||
|
@ -57,14 +58,14 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeats;
|
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
||||||
path = game.GetPath("FootBallNg" + (state > 0 ? "Late" : "Early"));
|
path = game.GetPath("FootBallNg" + (state > 0 ? "Late" : "Early"));
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
game.Kick(false);
|
game.Kick(false);
|
||||||
GetComponent<SpriteRenderer>().sortingOrder = 8;
|
GetComponent<SpriteRenderer>().sortingOrder = 8;
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(conductor.songPositionInBeats + 4f, delegate
|
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 4f, delegate
|
||||||
{
|
{
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}),
|
}),
|
||||||
|
@ -74,16 +75,16 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
Hit();
|
Hit();
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(conductor.songPositionInBeats + 1f, delegate
|
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 1f, delegate
|
||||||
{
|
{
|
||||||
shadow.SetActive(false);
|
shadow.SetActive(false);
|
||||||
GetComponent<SpriteRenderer>().sortingOrder = -5;
|
GetComponent<SpriteRenderer>().sortingOrder = -5;
|
||||||
transform.localScale *= 0.25f;
|
transform.localScale *= 0.25f;
|
||||||
path = game.GetPath("FootBallFall");
|
path = game.GetPath("FootBallFall");
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeats + 1f;
|
pathStartBeat = conductor.songPositionInBeatsAsDouble + 1f;
|
||||||
}),
|
}),
|
||||||
new BeatAction.Action(conductor.songPositionInBeats + 12f, delegate
|
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 12f, delegate
|
||||||
{
|
{
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}),
|
}),
|
||||||
|
@ -93,30 +94,30 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
void Hit()
|
void Hit()
|
||||||
{
|
{
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeats;
|
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
||||||
path = game.GetPath("FootBallJust");
|
path = game.GetPath("FootBallJust");
|
||||||
game.Kick(true, true, jump: true);
|
game.Kick(true, true, jump: true);
|
||||||
Jukebox.PlayOneShotGame("doubleDate/footballKick");
|
SoundByte.PlayOneShotGame("doubleDate/footballKick");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Miss(PlayerActionEvent caller)
|
void Miss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
if (conductor.songPositionInBeats > game.lastHitWeasel + 2.25f)
|
if (conductor.songPositionInBeatsAsDouble > game.lastHitWeasel + 2.25f)
|
||||||
{
|
{
|
||||||
path = game.GetPath("FootBallIn");
|
path = game.GetPath("FootBallIn");
|
||||||
float impact = GetPointTimeByTag(path, "impact");
|
float impact = GetPointTimeByTag(path, "impact");
|
||||||
if (impact > 0)
|
if (impact > 0)
|
||||||
{
|
{
|
||||||
GetComponent<SpriteRenderer>().sortingOrder = 8;
|
GetComponent<SpriteRenderer>().sortingOrder = 8;
|
||||||
Jukebox.PlayOneShotGame("doubleDate/weasel_hit", pathStartBeat + impact);
|
SoundByte.PlayOneShotGame("doubleDate/weasel_hit", pathStartBeat + impact);
|
||||||
Jukebox.PlayOneShotGame("doubleDate/weasel_scream", pathStartBeat + impact);
|
SoundByte.PlayOneShotGame("doubleDate/weasel_scream", pathStartBeat + impact);
|
||||||
game.MissKick(pathStartBeat + impact, true);
|
game.MissKick(pathStartBeat + impact, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(conductor.songPositionInBeats + 5f, delegate
|
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 5f, delegate
|
||||||
{
|
{
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
@ -11,7 +12,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
{
|
{
|
||||||
private DoubleDate game;
|
private DoubleDate game;
|
||||||
private SuperCurveObject.Path path;
|
private SuperCurveObject.Path path;
|
||||||
private float pathStartBeat = float.MinValue;
|
private double pathStartBeat = double.MinValue;
|
||||||
private Conductor conductor;
|
private Conductor conductor;
|
||||||
private GameObject shadow;
|
private GameObject shadow;
|
||||||
|
|
||||||
|
@ -23,20 +24,20 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
float beat = conductor.songPositionInBeats;
|
double beat = conductor.songPositionInBeatsAsDouble;
|
||||||
float height = 0f;
|
double height = 0f;
|
||||||
if (pathStartBeat > float.MinValue)
|
if (pathStartBeat > double.MinValue)
|
||||||
{
|
{
|
||||||
Vector3 pos = GetPathPositionFromBeat(path, Mathf.Max(beat, pathStartBeat), out height, pathStartBeat);
|
Vector3 pos = GetPathPositionFromBeat(path, Math.Max(beat, pathStartBeat), out height, pathStartBeat);
|
||||||
transform.position = pos;
|
transform.position = pos;
|
||||||
float rot = GetPathValue("rot");
|
float rot = GetPathValue("rot");
|
||||||
transform.rotation = Quaternion.Euler(0f, 0f, transform.rotation.eulerAngles.z - (rot * Time.deltaTime * (1f/conductor.pitchedSecPerBeat)));
|
transform.rotation = Quaternion.Euler(0f, 0f, transform.rotation.eulerAngles.z - (rot * Time.deltaTime * (1f/conductor.pitchedSecPerBeat)));
|
||||||
}
|
}
|
||||||
shadow.transform.position = new Vector3(transform.position.x, Mathf.Min(transform.position.y - height, game.floorHeight), transform.position.z);
|
shadow.transform.position = new Vector3(transform.position.x, (float) Math.Min(transform.position.y - height, game.floorHeight), transform.position.z);
|
||||||
shadow.transform.localScale = Vector3.one * Mathf.Clamp(((transform.position.y) - game.shadowDepthScaleMin) / (game.shadowDepthScaleMax - game.shadowDepthScaleMin), 0f, 1f);
|
shadow.transform.localScale = Vector3.one * Mathf.Clamp(((transform.position.y) - game.shadowDepthScaleMin) / (game.shadowDepthScaleMax - game.shadowDepthScaleMin), 0f, 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(float beat)
|
public void Init(double beat)
|
||||||
{
|
{
|
||||||
game.ScheduleInput(beat, 1f, InputType.STANDARD_DOWN, Just, Miss, Empty);
|
game.ScheduleInput(beat, 1f, InputType.STANDARD_DOWN, Just, Miss, Empty);
|
||||||
path = game.GetPath("SoccerIn");
|
path = game.GetPath("SoccerIn");
|
||||||
|
@ -56,17 +57,17 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
{
|
{
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(conductor.songPositionInBeats + 3f, delegate
|
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 3f, delegate
|
||||||
{
|
{
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeats;
|
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
path = game.GetPath("SoccerNg" + (state > 0 ? "Late" : "Early"));
|
path = game.GetPath("SoccerNg" + (state > 0 ? "Late" : "Early"));
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
game.Kick(false);
|
game.Kick(false);
|
||||||
GetComponent<SpriteRenderer>().sortingOrder = 8;
|
GetComponent<SpriteRenderer>().sortingOrder = 8;
|
||||||
return;
|
return;
|
||||||
|
@ -77,20 +78,20 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
void Hit()
|
void Hit()
|
||||||
{
|
{
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeats;
|
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
||||||
path = game.GetPath("SoccerJust");
|
path = game.GetPath("SoccerJust");
|
||||||
game.Kick();
|
game.Kick();
|
||||||
Jukebox.PlayOneShotGame("doubleDate/kick");
|
SoundByte.PlayOneShotGame("doubleDate/kick");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Miss(PlayerActionEvent caller)
|
void Miss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("doubleDate/weasel_hide");
|
SoundByte.PlayOneShotGame("doubleDate/weasel_hide");
|
||||||
game.MissKick(pathStartBeat + 2.25f);
|
game.MissKick(pathStartBeat + 2.25f);
|
||||||
|
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(conductor.songPositionInBeats + 4f, delegate
|
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 4f, delegate
|
||||||
{
|
{
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace HeavenStudio.Games.Scripts_DrummingPractice
|
||||||
|
|
||||||
private bool hitting = false;
|
private bool hitting = false;
|
||||||
|
|
||||||
private float canBopBeat = -2f;
|
private double canBopBeat = -2f;
|
||||||
|
|
||||||
// in the future: use the MiiStudio API to render any mii from a nintendo account / MNMS / Mii Studio code?
|
// in the future: use the MiiStudio API to render any mii from a nintendo account / MNMS / Mii Studio code?
|
||||||
// figure out how to call the API from unity?
|
// figure out how to call the API from unity?
|
||||||
|
@ -59,7 +59,7 @@ namespace HeavenStudio.Games.Scripts_DrummingPractice
|
||||||
animator.Play("Bop", 0, 0);
|
animator.Play("Bop", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Prepare(float beat, int type)
|
public void Prepare(double beat, int type)
|
||||||
{
|
{
|
||||||
canBopBeat = beat;
|
canBopBeat = beat;
|
||||||
count = type;
|
count = type;
|
||||||
|
@ -103,13 +103,13 @@ namespace HeavenStudio.Games.Scripts_DrummingPractice
|
||||||
|
|
||||||
private void HitSound(bool applause)
|
private void HitSound(bool applause)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("drummingPractice/hit");
|
SoundByte.PlayOneShotGame("drummingPractice/hit");
|
||||||
if (applause) Jukebox.PlayOneShot("applause");
|
if (applause) SoundByte.PlayOneShot("applause");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MissSound()
|
private void MissSound()
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("drummingPractice/miss");
|
SoundByte.PlayOneShotGame("drummingPractice/miss");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void EndHit()
|
public void EndHit()
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace HeavenStudio.Games.Scripts_DrummingPractice
|
||||||
public class DrummerHit : MonoBehaviour
|
public class DrummerHit : MonoBehaviour
|
||||||
{
|
{
|
||||||
DrummingPractice game;
|
DrummingPractice game;
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
public bool applause = true;
|
public bool applause = true;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
|
@ -25,7 +25,7 @@ namespace HeavenStudio.Games.Scripts_DrummingPractice
|
||||||
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(startBeat+1f, delegate {
|
new BeatAction.Action(startBeat+1f, delegate {
|
||||||
Jukebox.PlayOneShotGame("drummingPractice/drum");
|
SoundByte.PlayOneShotGame("drummingPractice/drum");
|
||||||
game.leftDrummer.Hit(true, false);
|
game.leftDrummer.Hit(true, false);
|
||||||
game.rightDrummer.Hit(true, false);
|
game.rightDrummer.Hit(true, false);
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -109,7 +109,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
[Header("Variables")]
|
[Header("Variables")]
|
||||||
float movingLength;
|
float movingLength;
|
||||||
float movingStartBeat;
|
double movingStartBeat;
|
||||||
bool isMoving;
|
bool isMoving;
|
||||||
string moveAnim;
|
string moveAnim;
|
||||||
EasingFunction.Ease lastEase;
|
EasingFunction.Ease lastEase;
|
||||||
|
@ -126,9 +126,9 @@ namespace HeavenStudio.Games
|
||||||
SetMiis();
|
SetMiis();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnGameSwitch(float beat)
|
public override void OnGameSwitch(double beat)
|
||||||
{
|
{
|
||||||
var changeMii = GameManager.instance.Beatmap.entities.FindLast(c => c.datamodel == "drummingPractice/set mii" && c.beat <= beat);
|
var changeMii = GameManager.instance.Beatmap.Entities.FindLast(c => c.datamodel == "drummingPractice/set mii" && c.beat <= beat);
|
||||||
if(changeMii != null)
|
if(changeMii != null)
|
||||||
{
|
{
|
||||||
EventCaller.instance.CallEvent(changeMii, true);
|
EventCaller.instance.CallEvent(changeMii, true);
|
||||||
|
@ -164,7 +164,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void NPCDrummersEnterOrExit(float beat, float length, bool exit, int ease)
|
public void NPCDrummersEnterOrExit(double beat, float length, bool exit, int ease)
|
||||||
{
|
{
|
||||||
movingStartBeat = beat;
|
movingStartBeat = beat;
|
||||||
movingLength = length;
|
movingLength = length;
|
||||||
|
@ -177,7 +177,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetBop(float beat, float length, bool shouldBop, bool autoBop)
|
public void SetBop(double beat, float length, bool shouldBop, bool autoBop)
|
||||||
{
|
{
|
||||||
goBop = autoBop;
|
goBop = autoBop;
|
||||||
if (shouldBop)
|
if (shouldBop)
|
||||||
|
@ -199,7 +199,7 @@ namespace HeavenStudio.Games
|
||||||
rightDrummer.Bop();
|
rightDrummer.Bop();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Prepare(float beat, bool applause)
|
public void Prepare(double beat, bool applause)
|
||||||
{
|
{
|
||||||
int type = count % 2;
|
int type = count % 2;
|
||||||
player.Prepare(beat, type);
|
player.Prepare(beat, type);
|
||||||
|
@ -208,7 +208,7 @@ namespace HeavenStudio.Games
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
SetFaces(0);
|
SetFaces(0);
|
||||||
Jukebox.PlayOneShotGame("drummingPractice/prepare");
|
SoundByte.PlayOneShotGame("drummingPractice/prepare");
|
||||||
|
|
||||||
GameObject hit = Instantiate(hitPrefab);
|
GameObject hit = Instantiate(hitPrefab);
|
||||||
hit.transform.parent = hitPrefab.transform.parent;
|
hit.transform.parent = hitPrefab.transform.parent;
|
||||||
|
|
|
@ -209,14 +209,14 @@ namespace HeavenStudio.Games
|
||||||
private GameEvent noCall = new GameEvent();
|
private GameEvent noCall = new GameEvent();
|
||||||
private GameEvent noSpecBop = new GameEvent();
|
private GameEvent noSpecBop = new GameEvent();
|
||||||
|
|
||||||
private float idolJumpStartTime = Single.MinValue;
|
private double idolJumpStartTime = double.MinValue;
|
||||||
private static int performanceType = (int) IdolPerformanceType.Normal;
|
private static int performanceType = (int) IdolPerformanceType.Normal;
|
||||||
private bool responseToggle = false;
|
private bool responseToggle = false;
|
||||||
private static float wantHais = Single.MinValue;
|
private static double wantHais = double.MinValue;
|
||||||
private static float wantKamone = Single.MinValue;
|
private static double wantKamone = double.MinValue;
|
||||||
private static int wantKamoneType = (int) KamoneResponseType.Through;
|
private static int wantKamoneType = (int) KamoneResponseType.Through;
|
||||||
private static bool wantKamoneAlt = false;
|
private static bool wantKamoneAlt = false;
|
||||||
private static float wantBigReady = Single.MinValue;
|
private static double wantBigReady = double.MinValue;
|
||||||
private bool hasJumped = false;
|
private bool hasJumped = false;
|
||||||
private bool goBopIdol = true;
|
private bool goBopIdol = true;
|
||||||
private bool goBopSpec = true;
|
private bool goBopSpec = true;
|
||||||
|
@ -331,22 +331,22 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnGameSwitch(float beat)
|
public override void OnGameSwitch(double beat)
|
||||||
{
|
{
|
||||||
if (wantHais != Single.MinValue)
|
if (wantHais != double.MinValue)
|
||||||
{
|
{
|
||||||
ContinueHais(wantHais);
|
ContinueHais(wantHais);
|
||||||
wantHais = Single.MinValue;
|
wantHais = double.MinValue;
|
||||||
}
|
}
|
||||||
if (wantKamone != Single.MinValue)
|
if (wantKamone != double.MinValue)
|
||||||
{
|
{
|
||||||
ContinueKamone(wantKamone, 0, wantKamoneType, wantKamoneAlt);
|
ContinueKamone(wantKamone, 0, wantKamoneType, wantKamoneAlt);
|
||||||
wantKamone = Single.MinValue;
|
wantKamone = double.MinValue;
|
||||||
}
|
}
|
||||||
if (wantBigReady != Single.MinValue)
|
if (wantBigReady != double.MinValue)
|
||||||
{
|
{
|
||||||
ContinueBigReady(wantBigReady);
|
ContinueBigReady(wantBigReady);
|
||||||
wantBigReady = Single.MinValue;
|
wantBigReady = double.MinValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -357,7 +357,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (goBopIdol)
|
if (goBopIdol)
|
||||||
{
|
{
|
||||||
if (!(cond.songPositionInBeats >= noBop.startBeat && cond.songPositionInBeats < noBop.startBeat + noBop.length))
|
if (!(cond.songPositionInBeatsAsDouble >= noBop.startBeat && cond.songPositionInBeatsAsDouble < noBop.startBeat + noBop.length))
|
||||||
{
|
{
|
||||||
idolAnimator.Play("IdolBeat" + GetPerformanceSuffix(), 0, 0);
|
idolAnimator.Play("IdolBeat" + GetPerformanceSuffix(), 0, 0);
|
||||||
Blue.PlayAnimState("Beat");
|
Blue.PlayAnimState("Beat");
|
||||||
|
@ -370,7 +370,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (goBopSpec)
|
if (goBopSpec)
|
||||||
{
|
{
|
||||||
if (!(cond.songPositionInBeats >= noSpecBop.startBeat && cond.songPositionInBeats < noSpecBop.startBeat + noSpecBop.length))
|
if (!(cond.songPositionInBeatsAsDouble >= noSpecBop.startBeat && cond.songPositionInBeatsAsDouble < noSpecBop.startBeat + noSpecBop.length))
|
||||||
BopAll();
|
BopAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -378,7 +378,7 @@ namespace HeavenStudio.Games
|
||||||
//idol jumping physics
|
//idol jumping physics
|
||||||
float jumpPos = cond.GetPositionFromBeat(idolJumpStartTime, 1f);
|
float jumpPos = cond.GetPositionFromBeat(idolJumpStartTime, 1f);
|
||||||
float IDOL_SHADOW_SCALE = 1.18f;
|
float IDOL_SHADOW_SCALE = 1.18f;
|
||||||
if (cond.songPositionInBeats >= idolJumpStartTime && cond.songPositionInBeats < idolJumpStartTime + 1f)
|
if (cond.songPositionInBeatsAsDouble >= idolJumpStartTime && cond.songPositionInBeatsAsDouble < idolJumpStartTime + 1f)
|
||||||
{
|
{
|
||||||
hasJumped = true;
|
hasJumped = true;
|
||||||
float yMul = jumpPos * 2f - 1f;
|
float yMul = jumpPos * 2f - 1f;
|
||||||
|
@ -388,13 +388,13 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
idolJumpStartTime = Single.MinValue;
|
idolJumpStartTime = double.MinValue;
|
||||||
ArisaRootMotion.transform.localPosition = new Vector3(0, 0);
|
ArisaRootMotion.transform.localPosition = new Vector3(0, 0);
|
||||||
ArisaShadow.transform.localScale = new Vector3(IDOL_SHADOW_SCALE, IDOL_SHADOW_SCALE, 1f);
|
ArisaShadow.transform.localScale = new Vector3(IDOL_SHADOW_SCALE, IDOL_SHADOW_SCALE, 1f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, float length, int target = (int) IdolBopType.Both, int targetAuto = (int)IdolBopType.Both)
|
public void Bop(double beat, float length, int target = (int) IdolBopType.Both, int targetAuto = (int)IdolBopType.Both)
|
||||||
{
|
{
|
||||||
goBopIdol = targetAuto == (int)IdolBopType.Both || targetAuto == (int)IdolBopType.Idol;
|
goBopIdol = targetAuto == (int)IdolBopType.Both || targetAuto == (int)IdolBopType.Idol;
|
||||||
goBopSpec = targetAuto == (int)IdolBopType.Both || targetAuto == (int)IdolBopType.Spectators;
|
goBopSpec = targetAuto == (int)IdolBopType.Both || targetAuto == (int)IdolBopType.Spectators;
|
||||||
|
@ -430,33 +430,33 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DisableBop(float beat, float length)
|
private void DisableBop(double beat, float length)
|
||||||
{
|
{
|
||||||
noBop.length = length;
|
noBop.length = length;
|
||||||
noBop.startBeat = beat;
|
noBop.startBeat = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DisableResponse(float beat, float length)
|
private void DisableResponse(double beat, float length)
|
||||||
{
|
{
|
||||||
noResponse.length = length;
|
noResponse.length = length;
|
||||||
noResponse.startBeat = beat;
|
noResponse.startBeat = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DisableCall(float beat, float length)
|
private void DisableCall(double beat, float length)
|
||||||
{
|
{
|
||||||
noCall.length = length;
|
noCall.length = length;
|
||||||
noCall.startBeat = beat;
|
noCall.startBeat = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DisableSpecBop(float beat, float length)
|
private void DisableSpecBop(double beat, float length)
|
||||||
{
|
{
|
||||||
float bt = Conductor.instance.songPositionInBeats;
|
double bt = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
if (bt >= noSpecBop.startBeat && bt < noSpecBop.startBeat + noSpecBop.length)
|
if (bt >= noSpecBop.startBeat && bt < noSpecBop.startBeat + noSpecBop.length)
|
||||||
{
|
{
|
||||||
float thisStToNextSt = beat - noSpecBop.startBeat;
|
double thisStToNextSt = beat - noSpecBop.startBeat;
|
||||||
float newLen = thisStToNextSt + length;
|
double newLen = thisStToNextSt + length;
|
||||||
if (newLen > noSpecBop.length)
|
if (newLen > noSpecBop.length)
|
||||||
noSpecBop.length = thisStToNextSt + length;
|
noSpecBop.length = (float)thisStToNextSt + length;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -465,9 +465,9 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayAnim(float beat, float length, int type, int who)
|
public void PlayAnim(double beat, float length, int type, int who)
|
||||||
{
|
{
|
||||||
idolJumpStartTime = Single.MinValue;
|
idolJumpStartTime = double.MinValue;
|
||||||
DisableResponse(beat, length + 0.5f);
|
DisableResponse(beat, length + 0.5f);
|
||||||
DisableBop(beat, length + 0.5f);
|
DisableBop(beat, length + 0.5f);
|
||||||
DisableCall(beat, length + 0.5f);
|
DisableCall(beat, length + 0.5f);
|
||||||
|
@ -529,14 +529,14 @@ namespace HeavenStudio.Games
|
||||||
break;
|
break;
|
||||||
case (int)IdolAnimations.Dab:
|
case (int)IdolAnimations.Dab:
|
||||||
idolAnimator.Play("IdolDab" + GetPerformanceSuffix(), -1, 0);
|
idolAnimator.Play("IdolDab" + GetPerformanceSuffix(), -1, 0);
|
||||||
Jukebox.PlayOneShotGame("fanClub/arisa_dab");
|
SoundByte.PlayOneShotGame("fanClub/arisa_dab");
|
||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayAnimStage(float beat, int type)
|
public void PlayAnimStage(double beat, int type)
|
||||||
{
|
{
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
|
@ -566,7 +566,7 @@ namespace HeavenStudio.Games
|
||||||
spectatorMat.SetColor("_Color", new Color(117/255f, 177/255f, 209/255f, 1));
|
spectatorMat.SetColor("_Color", new Color(117/255f, 177/255f, 209/255f, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DoIdolJump(float beat, float length = 3f)
|
private void DoIdolJump(double beat, float length = 3f)
|
||||||
{
|
{
|
||||||
DisableBop(beat, length);
|
DisableBop(beat, length);
|
||||||
DisableResponse(beat, length);
|
DisableResponse(beat, length);
|
||||||
|
@ -584,7 +584,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (!responseToggle)
|
if (!responseToggle)
|
||||||
{
|
{
|
||||||
if (!(Conductor.instance.songPositionInBeats >= noResponse.startBeat && Conductor.instance.songPositionInBeats < noResponse.startBeat + noResponse.length))
|
if (!(Conductor.instance.songPositionInBeatsAsDouble >= noResponse.startBeat && Conductor.instance.songPositionInBeatsAsDouble < noResponse.startBeat + noResponse.length))
|
||||||
{
|
{
|
||||||
idolAnimator.Play("IdolCrap" + GetPerformanceSuffix(), -1, 0);
|
idolAnimator.Play("IdolCrap" + GetPerformanceSuffix(), -1, 0);
|
||||||
Blue.PlayAnimState("Crap");
|
Blue.PlayAnimState("Crap");
|
||||||
|
@ -595,7 +595,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
private void DoIdolPeace(bool sync = true)
|
private void DoIdolPeace(bool sync = true)
|
||||||
{
|
{
|
||||||
if (!(Conductor.instance.songPositionInBeats >= noCall.startBeat && Conductor.instance.songPositionInBeats < noCall.startBeat + noCall.length))
|
if (!(Conductor.instance.songPositionInBeatsAsDouble >= noCall.startBeat && Conductor.instance.songPositionInBeatsAsDouble < noCall.startBeat + noCall.length))
|
||||||
{
|
{
|
||||||
if (sync)
|
if (sync)
|
||||||
idolAnimator.Play("IdolPeace" + GetPerformanceSuffix(), -1, 0);
|
idolAnimator.Play("IdolPeace" + GetPerformanceSuffix(), -1, 0);
|
||||||
|
@ -610,14 +610,14 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (responseToggle)
|
if (responseToggle)
|
||||||
{
|
{
|
||||||
if (!(Conductor.instance.songPositionInBeats >= noResponse.startBeat && Conductor.instance.songPositionInBeats < noResponse.startBeat + noResponse.length))
|
if (!(Conductor.instance.songPositionInBeatsAsDouble >= noResponse.startBeat && Conductor.instance.songPositionInBeatsAsDouble < noResponse.startBeat + noResponse.length))
|
||||||
idolAnimator.Play("IdolResponse" + GetPerformanceSuffix(), -1, 0);
|
idolAnimator.Play("IdolResponse" + GetPerformanceSuffix(), -1, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DoIdolCall(int part = 0, bool big = false)
|
private void DoIdolCall(int part = 0, bool big = false)
|
||||||
{
|
{
|
||||||
if (!(Conductor.instance.songPositionInBeats >= noCall.startBeat && Conductor.instance.songPositionInBeats < noCall.startBeat + noCall.length))
|
if (!(Conductor.instance.songPositionInBeatsAsDouble >= noCall.startBeat && Conductor.instance.songPositionInBeatsAsDouble < noCall.startBeat + noCall.length))
|
||||||
{
|
{
|
||||||
if (big)
|
if (big)
|
||||||
{
|
{
|
||||||
|
@ -631,7 +631,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
const float HAIS_LENGTH = 4.5f;
|
const float HAIS_LENGTH = 4.5f;
|
||||||
public void CallHai(float beat, bool noSound = false, int type = 0)
|
public void CallHai(double beat, bool noSound = false, int type = 0)
|
||||||
{
|
{
|
||||||
responseToggle = false;
|
responseToggle = false;
|
||||||
DisableBop(beat, 8f);
|
DisableBop(beat, 8f);
|
||||||
|
@ -658,25 +658,25 @@ namespace HeavenStudio.Games
|
||||||
PlaySoundSequence("fanClub", "crowd_hai", beat + 4f);
|
PlaySoundSequence("fanClub", "crowd_hai", beat + 4f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WarnHai(float beat, bool noSound = false, int type = 0)
|
public static void WarnHai(double beat, bool noSound = false, int type = 0)
|
||||||
{
|
{
|
||||||
wantHais = beat;
|
wantHais = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HaiSound(float beat, bool noSound = false, int type = 0)
|
public static void HaiSound(double beat, bool noSound = false, int type = 0)
|
||||||
{
|
{
|
||||||
if (noSound) return;
|
if (noSound) return;
|
||||||
PlaySoundSequence("fanClub", "arisa_hai", beat);
|
PlaySoundSequence("fanClub", "arisa_hai", beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void ContinueHais(float beat, int type = 0)
|
public void ContinueHais(double beat, int type = 0)
|
||||||
{
|
{
|
||||||
CallHai(beat, true, type);
|
CallHai(beat, true, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
const float CALL_LENGTH = 2.5f;
|
const float CALL_LENGTH = 2.5f;
|
||||||
public void CallKamone(float beat, bool noSound = false, int type = 0, int responseType = (int) KamoneResponseType.Through, bool alt = false)
|
public void CallKamone(double beat, bool noSound = false, int type = 0, int responseType = (int) KamoneResponseType.Through, bool alt = false)
|
||||||
{
|
{
|
||||||
bool doJump = (responseType == (int) KamoneResponseType.Jump || responseType == (int) KamoneResponseType.JumpFast);
|
bool doJump = (responseType == (int) KamoneResponseType.Jump || responseType == (int) KamoneResponseType.JumpFast);
|
||||||
bool isBig = (responseType == (int) KamoneResponseType.ThroughFast || responseType == (int) KamoneResponseType.JumpFast);
|
bool isBig = (responseType == (int) KamoneResponseType.ThroughFast || responseType == (int) KamoneResponseType.JumpFast);
|
||||||
|
@ -719,14 +719,14 @@ namespace HeavenStudio.Games
|
||||||
PlaySoundSequence("fanClub", alt ? "crowd_iina" : "crowd_kamone", beat + 2f);
|
PlaySoundSequence("fanClub", alt ? "crowd_iina" : "crowd_kamone", beat + 2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WarnKamone(float beat, bool noSound = false, int type = 0, int responseType = (int) KamoneResponseType.Through, bool alt = false)
|
public static void WarnKamone(double beat, bool noSound = false, int type = 0, int responseType = (int) KamoneResponseType.Through, bool alt = false)
|
||||||
{
|
{
|
||||||
wantKamone = beat;
|
wantKamone = beat;
|
||||||
wantKamoneType = responseType;
|
wantKamoneType = responseType;
|
||||||
wantKamoneAlt = alt;
|
wantKamoneAlt = alt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void KamoneSound(float beat, bool noSound = false, int type = 0, int responseType = (int) KamoneResponseType.Through, bool alt = false)
|
public static void KamoneSound(double beat, bool noSound = false, int type = 0, int responseType = (int) KamoneResponseType.Through, bool alt = false)
|
||||||
{
|
{
|
||||||
if (noSound) return;
|
if (noSound) return;
|
||||||
if (responseType == (int) KamoneResponseType.ThroughFast || responseType == (int) KamoneResponseType.JumpFast)
|
if (responseType == (int) KamoneResponseType.ThroughFast || responseType == (int) KamoneResponseType.JumpFast)
|
||||||
|
@ -739,13 +739,13 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ContinueKamone(float beat, int type = 0, int responseType = (int) KamoneResponseType.Through, bool alt = false)
|
public void ContinueKamone(double beat, int type = 0, int responseType = (int) KamoneResponseType.Through, bool alt = false)
|
||||||
{
|
{
|
||||||
CallKamone(beat, true, type, responseType, alt);
|
CallKamone(beat, true, type, responseType, alt);
|
||||||
}
|
}
|
||||||
|
|
||||||
const float BIGCALL_LENGTH = 2.75f;
|
const float BIGCALL_LENGTH = 2.75f;
|
||||||
public void CallBigReady(float beat, bool noSound = false)
|
public void CallBigReady(double beat, bool noSound = false)
|
||||||
{
|
{
|
||||||
Prepare(beat + 1.5f);
|
Prepare(beat + 1.5f);
|
||||||
Prepare(beat + 2f);
|
Prepare(beat + 2f);
|
||||||
|
@ -762,23 +762,23 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WarnBigReady(float beat, bool noSound = false)
|
public static void WarnBigReady(double beat, bool noSound = false)
|
||||||
{
|
{
|
||||||
wantBigReady = beat;
|
wantBigReady = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void BigReadySound(float beat, bool noSound = false)
|
public static void BigReadySound(double beat, bool noSound = false)
|
||||||
{
|
{
|
||||||
if (noSound) return;
|
if (noSound) return;
|
||||||
PlaySoundSequence("fanClub", "crowd_big_ready", beat);
|
PlaySoundSequence("fanClub", "crowd_big_ready", beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ContinueBigReady(float beat)
|
public void ContinueBigReady(double beat)
|
||||||
{
|
{
|
||||||
CallBigReady(beat, true);
|
CallBigReady(beat, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Prepare(float beat, int type = 0)
|
public void Prepare(double beat, int type = 0)
|
||||||
{
|
{
|
||||||
Player.AddHit(beat, type);
|
Player.AddHit(beat, type);
|
||||||
}
|
}
|
||||||
|
@ -832,7 +832,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayOneClap(float beat, int who = -1)
|
private void PlayOneClap(double beat, int who = -1)
|
||||||
{
|
{
|
||||||
if (who != -1)
|
if (who != -1)
|
||||||
{
|
{
|
||||||
|
@ -845,7 +845,7 @@ namespace HeavenStudio.Games
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Jukebox.PlayOneShotGame("fanClub/play_clap", volume: 0.08f);
|
// Jukebox.PlayOneShotGame("fanClub/play_clap", volume: 0.08f);
|
||||||
Jukebox.PlayOneShotGame("fanClub/crap_impact", pitch: UnityEngine.Random.Range(0.95f, 1.05f), volume: 0.1f);
|
SoundByte.PlayOneShotGame("fanClub/crap_impact", pitch: UnityEngine.Random.Range(0.95f, 1.05f), volume: 0.1f);
|
||||||
BeatAction.New(Spectators[who], new List<BeatAction.Action>()
|
BeatAction.New(Spectators[who], new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat, delegate { Spectators[who].GetComponent<Animator>().Play("FanClap", -1, 0); }),
|
new BeatAction.Action(beat, delegate { Spectators[who].GetComponent<Animator>().Play("FanClap", -1, 0); }),
|
||||||
|
@ -863,7 +863,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayLongClap(float beat)
|
private void PlayLongClap(double beat)
|
||||||
{
|
{
|
||||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
@ -872,7 +872,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayChargeClap(float beat)
|
private void PlayChargeClap(double beat)
|
||||||
{
|
{
|
||||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
@ -881,7 +881,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StartJump(int idx, float beat)
|
private void StartJump(int idx, double beat)
|
||||||
{
|
{
|
||||||
Spectators[idx].GetComponent<NtrIdolFan>().jumpStartTime = beat;
|
Spectators[idx].GetComponent<NtrIdolFan>().jumpStartTime = beat;
|
||||||
BeatAction.New(Spectators[idx], new List<BeatAction.Action>()
|
BeatAction.New(Spectators[idx], new List<BeatAction.Action>()
|
||||||
|
@ -891,7 +891,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayJump(float beat)
|
private void PlayJump(double beat)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < Spectators.Count; i++)
|
for (int i = 0; i < Spectators.Count; i++)
|
||||||
{
|
{
|
||||||
|
@ -912,7 +912,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DancerTravel(float beat, float length, bool exit, bool instant)
|
public void DancerTravel(double beat, float length, bool exit, bool instant)
|
||||||
{
|
{
|
||||||
if (instant)
|
if (instant)
|
||||||
{
|
{
|
||||||
|
@ -926,7 +926,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FinalCheer(float beat)
|
public void FinalCheer(double beat)
|
||||||
{
|
{
|
||||||
if (noJudgement) return;
|
if (noJudgement) return;
|
||||||
noJudgement = true;
|
noJudgement = true;
|
||||||
|
@ -970,7 +970,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartClapLoop(float beat, int who)
|
void StartClapLoop(double beat, int who)
|
||||||
{
|
{
|
||||||
BeatAction.New(Spectators[who], new List<BeatAction.Action>()
|
BeatAction.New(Spectators[who], new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,11 +25,11 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
public Material coreMat;
|
public Material coreMat;
|
||||||
|
|
||||||
Animator anim;
|
Animator anim;
|
||||||
float startStepBeat = float.MaxValue;
|
double startStepBeat = double.MaxValue;
|
||||||
float stepLength = 16f;
|
float stepLength = 16f;
|
||||||
bool exiting = false;
|
bool exiting = false;
|
||||||
int currentAnim = 0;
|
int currentAnim = 0;
|
||||||
float startJumpTime = float.MinValue;
|
double startJumpTime = double.MinValue;
|
||||||
bool hasJumped = false;
|
bool hasJumped = false;
|
||||||
|
|
||||||
const int StepCount = 8;
|
const int StepCount = 8;
|
||||||
|
@ -41,14 +41,14 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
if (cond.songPositionInBeatsAsDouble >= startStepBeat + stepLength)
|
if (cond.songPositionInBeatsAsDouble >= startStepBeat + stepLength)
|
||||||
{
|
{
|
||||||
FinishEntrance(exiting);
|
FinishEntrance(exiting);
|
||||||
startStepBeat = float.MaxValue;
|
startStepBeat = double.MaxValue;
|
||||||
currentAnim = 0;
|
currentAnim = 0;
|
||||||
}
|
}
|
||||||
else if (cond.songPositionInBeatsAsDouble >= startStepBeat)
|
else if (cond.songPositionInBeatsAsDouble >= startStepBeat)
|
||||||
{
|
{
|
||||||
currentAnim = (int)((cond.songPositionInBeatsAsDouble - startStepBeat) / (stepLength / AnimCount));
|
currentAnim = (int)((cond.songPositionInBeatsAsDouble - startStepBeat) / (stepLength / AnimCount));
|
||||||
float startAnimBeat = startStepBeat + (stepLength / AnimCount) * currentAnim;
|
double startAnimBeat = startStepBeat + (stepLength / AnimCount) * currentAnim;
|
||||||
float endAnimBeat = startAnimBeat + (stepLength / AnimCount);
|
double endAnimBeat = startAnimBeat + (stepLength / AnimCount);
|
||||||
float prog = (float)((cond.songPositionInBeatsAsDouble - startAnimBeat - 0.75) / (endAnimBeat - startAnimBeat));
|
float prog = (float)((cond.songPositionInBeatsAsDouble - startAnimBeat - 0.75) / (endAnimBeat - startAnimBeat));
|
||||||
prog = Mathf.Clamp01(prog * 4);
|
prog = Mathf.Clamp01(prog * 4);
|
||||||
if (exiting)
|
if (exiting)
|
||||||
|
@ -64,12 +64,12 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
rootTransform.transform.localPosition = new Vector3(startPostion + stepDistance * currentAnim + stepDistance * prog, rootYPos);
|
rootTransform.transform.localPosition = new Vector3(startPostion + stepDistance * currentAnim + stepDistance * prog, rootYPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (startStepBeat == float.MaxValue)
|
if (startStepBeat == double.MaxValue)
|
||||||
{
|
{
|
||||||
//idol jumping physics
|
//idol jumping physics
|
||||||
float jumpPos = cond.GetPositionFromBeat(startJumpTime, 1f);
|
float jumpPos = cond.GetPositionFromBeat(startJumpTime, 1f);
|
||||||
float IDOL_SHADOW_SCALE = 1.18f;
|
float IDOL_SHADOW_SCALE = 1.18f;
|
||||||
if (cond.songPositionInBeats >= startJumpTime && cond.songPositionInBeats < startJumpTime + 1f)
|
if (cond.songPositionInBeatsAsDouble >= startJumpTime && cond.songPositionInBeatsAsDouble < startJumpTime + 1f)
|
||||||
{
|
{
|
||||||
hasJumped = true;
|
hasJumped = true;
|
||||||
float yMul = jumpPos * 2f - 1f;
|
float yMul = jumpPos * 2f - 1f;
|
||||||
|
@ -111,7 +111,7 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
anim = GetComponent<Animator>();
|
anim = GetComponent<Animator>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartEntrance(float beat, float length, bool exit) {
|
public void StartEntrance(double beat, float length, bool exit) {
|
||||||
gameObject.SetActive(true);
|
gameObject.SetActive(true);
|
||||||
rootTransform.SetActive(true);
|
rootTransform.SetActive(true);
|
||||||
shadow.SetActive(true);
|
shadow.SetActive(true);
|
||||||
|
@ -156,9 +156,9 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
coreMat.SetColor("_Color", new Color(117/255f, 177/255f, 209/255f, 1));
|
coreMat.SetColor("_Color", new Color(117/255f, 177/255f, 209/255f, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoIdolJump(float beat)
|
public void DoIdolJump(double beat)
|
||||||
{
|
{
|
||||||
if (startStepBeat != float.MaxValue) return;
|
if (startStepBeat != double.MaxValue) return;
|
||||||
if (!gameObject.activeInHierarchy) return;
|
if (!gameObject.activeInHierarchy) return;
|
||||||
startJumpTime = beat;
|
startJumpTime = beat;
|
||||||
|
|
||||||
|
@ -170,11 +170,11 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayAnim(float beat, float length, int type)
|
public void PlayAnim(double beat, float length, int type)
|
||||||
{
|
{
|
||||||
if (startStepBeat != float.MaxValue) return;
|
if (startStepBeat != double.MaxValue) return;
|
||||||
if (!gameObject.activeInHierarchy) return;
|
if (!gameObject.activeInHierarchy) return;
|
||||||
startJumpTime = float.MinValue;
|
startJumpTime = double.MinValue;
|
||||||
// DisableResponse(beat, length + 0.5f);
|
// DisableResponse(beat, length + 0.5f);
|
||||||
// DisableBop(beat, length + 0.5f);
|
// DisableBop(beat, length + 0.5f);
|
||||||
// DisableCall(beat, length + 0.5f);
|
// DisableCall(beat, length + 0.5f);
|
||||||
|
@ -223,7 +223,7 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
|
|
||||||
public void PlayAnimState(string state)
|
public void PlayAnimState(string state)
|
||||||
{
|
{
|
||||||
if (startStepBeat != float.MaxValue) return;
|
if (startStepBeat != double.MaxValue) return;
|
||||||
if (!gameObject.activeInHierarchy) return;
|
if (!gameObject.activeInHierarchy) return;
|
||||||
anim.Play(state, -1, 0);
|
anim.Play(state, -1, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,14 +21,14 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
|
|
||||||
[Header("Properties")]
|
[Header("Properties")]
|
||||||
[NonSerialized] public bool player = false;
|
[NonSerialized] public bool player = false;
|
||||||
public float jumpStartTime = Single.MinValue;
|
public double jumpStartTime = double.MinValue;
|
||||||
bool stopBeat = false;
|
bool stopBeat = false;
|
||||||
bool stopCharge = false;
|
bool stopCharge = false;
|
||||||
bool hasJumped = false;
|
bool hasJumped = false;
|
||||||
|
|
||||||
float clappingStartTime = Single.MinValue;
|
double clappingStartTime = double.MinValue;
|
||||||
|
|
||||||
public void AddHit(float beat, int type = 0)
|
public void AddHit(double beat, int type = 0)
|
||||||
{
|
{
|
||||||
if (player)
|
if (player)
|
||||||
{
|
{
|
||||||
|
@ -114,7 +114,7 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
}
|
}
|
||||||
if (PlayerInput.Pressing())
|
if (PlayerInput.Pressing())
|
||||||
{
|
{
|
||||||
if (clappingStartTime != Single.MinValue && cond.songPositionInBeats > clappingStartTime + 2f && !stopCharge)
|
if (clappingStartTime != double.MinValue && cond.songPositionInBeatsAsDouble > clappingStartTime + 2f && !stopCharge)
|
||||||
{
|
{
|
||||||
animator.speed = 1f;
|
animator.speed = 1f;
|
||||||
animator.Play("FanClapCharge", -1, 0);
|
animator.Play("FanClapCharge", -1, 0);
|
||||||
|
@ -123,7 +123,7 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
}
|
}
|
||||||
if (PlayerInput.PressedUp())
|
if (PlayerInput.PressedUp())
|
||||||
{
|
{
|
||||||
if (clappingStartTime != Single.MinValue && cond.songPositionInBeats > clappingStartTime + 2f && stopCharge && !FanClub.instance.IsExpectingInputNow(InputType.STANDARD_UP))
|
if (clappingStartTime != double.MinValue && cond.songPositionInBeatsAsDouble > clappingStartTime + 2f && stopCharge && !FanClub.instance.IsExpectingInputNow(InputType.STANDARD_UP))
|
||||||
{
|
{
|
||||||
if (FanClub.instance.JudgementPaused)
|
if (FanClub.instance.JudgementPaused)
|
||||||
{
|
{
|
||||||
|
@ -140,13 +140,13 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
animator.speed = 1f;
|
animator.speed = 1f;
|
||||||
animator.Play("FanFree", -1, 0);
|
animator.Play("FanFree", -1, 0);
|
||||||
stopBeat = false;
|
stopBeat = false;
|
||||||
clappingStartTime = Single.MinValue;
|
clappingStartTime = double.MinValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float jumpPos = cond.GetPositionFromBeat(jumpStartTime, 1f);
|
float jumpPos = cond.GetPositionFromBeat(jumpStartTime, 1f);
|
||||||
if (cond.songPositionInBeats >= jumpStartTime && cond.songPositionInBeats < jumpStartTime + 1f)
|
if (cond.songPositionInBeatsAsDouble >= jumpStartTime && cond.songPositionInBeatsAsDouble < jumpStartTime + 1f)
|
||||||
{
|
{
|
||||||
hasJumped = true;
|
hasJumped = true;
|
||||||
float yMul = jumpPos * 2f - 1f;
|
float yMul = jumpPos * 2f - 1f;
|
||||||
|
@ -161,7 +161,7 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
shadow.transform.localScale = new Vector3(1.4f, 1.4f, 1f);
|
shadow.transform.localScale = new Vector3(1.4f, 1.4f, 1f);
|
||||||
if (hasJumped)
|
if (hasJumped)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("fanClub/landing_impact", pitch: UnityEngine.Random.Range(0.95f, 1f), volume: 1f/4);
|
SoundByte.PlayOneShotGame("fanClub/landing_impact", pitch: UnityEngine.Random.Range(0.95f, 1f), volume: 1f/4);
|
||||||
if (player)
|
if (player)
|
||||||
{
|
{
|
||||||
animator.Play("FanPrepare", -1, 0);
|
animator.Play("FanPrepare", -1, 0);
|
||||||
|
@ -191,14 +191,14 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
jumpStartTime = -99f;
|
jumpStartTime = -99f;
|
||||||
animator.speed = 1f;
|
animator.speed = 1f;
|
||||||
animator.Play("FanClap", -1, 0);
|
animator.Play("FanClap", -1, 0);
|
||||||
Jukebox.PlayOneShotGame("fanClub/play_clap");
|
SoundByte.PlayOneShotGame("fanClub/play_clap");
|
||||||
Jukebox.PlayOneShotGame("fanClub/crap_impact");
|
SoundByte.PlayOneShotGame("fanClub/crap_impact");
|
||||||
clappingStartTime = cond.songPositionInBeats;
|
clappingStartTime = cond.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
if (doCharge)
|
if (doCharge)
|
||||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(cond.songPositionInBeats + 0.1f, delegate {
|
new BeatAction.Action(cond.songPositionInBeatsAsDouble + 0.1f, delegate {
|
||||||
if (PlayerInput.Pressing() || autoplayRelease > 0f)
|
if (PlayerInput.Pressing() || autoplayRelease > 0f)
|
||||||
{
|
{
|
||||||
animator.Play("FanClapCharge", -1, 0);
|
animator.Play("FanClapCharge", -1, 0);
|
||||||
|
@ -211,7 +211,7 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
{
|
{
|
||||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(cond.songPositionInBeats + autoplayRelease, delegate {
|
new BeatAction.Action(cond.songPositionInBeatsAsDouble + autoplayRelease, delegate {
|
||||||
animator.Play("FanFree", -1, 0);
|
animator.Play("FanFree", -1, 0);
|
||||||
stopBeat = false;
|
stopBeat = false;
|
||||||
}),
|
}),
|
||||||
|
@ -229,16 +229,16 @@ namespace HeavenStudio.Games.Scripts_FanClub
|
||||||
|
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
animator.Play("FanJump", -1, 0);
|
animator.Play("FanJump", -1, 0);
|
||||||
Jukebox.PlayOneShotGame("fanClub/play_jump");
|
SoundByte.PlayOneShotGame("fanClub/play_jump");
|
||||||
jumpStartTime = cond.songPositionInBeats;
|
jumpStartTime = cond.songPositionInBeatsAsDouble;
|
||||||
clappingStartTime = Single.MinValue;
|
clappingStartTime = double.MinValue;
|
||||||
stopCharge = false;
|
stopCharge = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsJumping()
|
public bool IsJumping()
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
return (cond.songPositionInBeats >= jumpStartTime && cond.songPositionInBeats < jumpStartTime + 1f);
|
return (cond.songPositionInBeatsAsDouble >= jumpStartTime && cond.songPositionInBeatsAsDouble < jumpStartTime + 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop()
|
public void Bop()
|
||||||
|
|
|
@ -91,7 +91,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
public struct QueuedFirework
|
public struct QueuedFirework
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public bool isSparkler;
|
public bool isSparkler;
|
||||||
public int whereToSpawn;
|
public int whereToSpawn;
|
||||||
public bool practice;
|
public bool practice;
|
||||||
|
@ -166,7 +166,7 @@ namespace HeavenStudio.Games
|
||||||
stars.SetActive(!doIt);
|
stars.SetActive(!doIt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void CountIn(float beat, int count)
|
public static void CountIn(double beat, int count)
|
||||||
{
|
{
|
||||||
switch (count)
|
switch (count)
|
||||||
{
|
{
|
||||||
|
@ -197,7 +197,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PreSpawnFirework(float beat, bool isSparkler, int whereToSpawn, bool practice, int explosionType, bool applause, float verticalOffset)
|
public static void PreSpawnFirework(double beat, bool isSparkler, int whereToSpawn, bool practice, int explosionType, bool applause, float verticalOffset)
|
||||||
{
|
{
|
||||||
if (isSparkler)
|
if (isSparkler)
|
||||||
{
|
{
|
||||||
|
@ -230,7 +230,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpawnFirework(float beat, bool isSparkler, int whereToSpawn, bool practice, int explosionType, bool applause, float verticalOffset)
|
void SpawnFirework(double beat, bool isSparkler, int whereToSpawn, bool practice, int explosionType, bool applause, float verticalOffset)
|
||||||
{
|
{
|
||||||
if (isSparkler && practice)
|
if (isSparkler && practice)
|
||||||
{
|
{
|
||||||
|
@ -270,9 +270,9 @@ namespace HeavenStudio.Games
|
||||||
spawnedRocket.Init(beat, explosionType);
|
spawnedRocket.Init(beat, explosionType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnBomb(float beat, bool practice, bool applause)
|
public void SpawnBomb(double beat, bool practice, bool applause)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("fireworks/tamaya_4");
|
SoundByte.PlayOneShotGame("fireworks/tamaya_4");
|
||||||
if (practice)
|
if (practice)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[]
|
MultiSound.Play(new MultiSound.Sound[]
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace HeavenStudio.Games.Scripts_Fireworks
|
||||||
public bool applause;
|
public bool applause;
|
||||||
private bool exploded;
|
private bool exploded;
|
||||||
private Fireworks game;
|
private Fireworks game;
|
||||||
private float startBeat;
|
private double startBeat;
|
||||||
private Animator anim;
|
private Animator anim;
|
||||||
|
|
||||||
void Awake()
|
void Awake()
|
||||||
|
@ -21,7 +21,7 @@ namespace HeavenStudio.Games.Scripts_Fireworks
|
||||||
anim = GetComponent<Animator>();
|
anim = GetComponent<Animator>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(float beat)
|
public void Init(double beat)
|
||||||
{
|
{
|
||||||
game.ScheduleInput(beat, 1f, InputType.STANDARD_DOWN, Just, Out, Out);
|
game.ScheduleInput(beat, 1f, InputType.STANDARD_DOWN, Just, Out, Out);
|
||||||
startBeat = beat;
|
startBeat = beat;
|
||||||
|
@ -46,7 +46,7 @@ namespace HeavenStudio.Games.Scripts_Fireworks
|
||||||
});
|
});
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("fireworks/miss");
|
SoundByte.PlayOneShotGame("fireworks/miss");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -55,9 +55,9 @@ namespace HeavenStudio.Games.Scripts_Fireworks
|
||||||
|
|
||||||
void Success(PlayerActionEvent caller)
|
void Success(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("fireworks/taikoExplode");
|
SoundByte.PlayOneShotGame("fireworks/taikoExplode");
|
||||||
game.FadeFlashColor(Color.white, new Color(1, 1, 1, 0), 0.5f);
|
game.FadeFlashColor(Color.white, new Color(1, 1, 1, 0), 0.5f);
|
||||||
if (applause) Jukebox.PlayOneShot("applause", caller.timer + caller.startBeat + 1f);
|
if (applause) SoundByte.PlayOneShot("applause", caller.timer + caller.startBeat + 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Out(PlayerActionEvent caller) { }
|
void Out(PlayerActionEvent caller) { }
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace HeavenStudio.Games.Scripts_Fireworks
|
||||||
[SerializeField] Animator anim;
|
[SerializeField] Animator anim;
|
||||||
public bool isSparkler;
|
public bool isSparkler;
|
||||||
private Fireworks game;
|
private Fireworks game;
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
public bool applause;
|
public bool applause;
|
||||||
private bool exploded;
|
private bool exploded;
|
||||||
private float startY;
|
private float startY;
|
||||||
|
@ -63,7 +63,7 @@ namespace HeavenStudio.Games.Scripts_Fireworks
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(float beat, int explosionToChoose)
|
public void Init(double beat, int explosionToChoose)
|
||||||
{
|
{
|
||||||
startBeat = beat;
|
startBeat = beat;
|
||||||
startY = transform.position.y - offSet;
|
startY = transform.position.y - offSet;
|
||||||
|
@ -89,7 +89,7 @@ namespace HeavenStudio.Games.Scripts_Fireworks
|
||||||
{
|
{
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("fireworks/miss");
|
SoundByte.PlayOneShotGame("fireworks/miss");
|
||||||
particleBarelyEffect.Play();
|
particleBarelyEffect.Play();
|
||||||
anim.gameObject.SetActive(false);
|
anim.gameObject.SetActive(false);
|
||||||
return;
|
return;
|
||||||
|
@ -99,10 +99,10 @@ namespace HeavenStudio.Games.Scripts_Fireworks
|
||||||
|
|
||||||
void Success(PlayerActionEvent caller)
|
void Success(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("fireworks/explode_5");
|
SoundByte.PlayOneShotGame("fireworks/explode_5");
|
||||||
selectedParticleEffect.Play();
|
selectedParticleEffect.Play();
|
||||||
anim.gameObject.SetActive(false);
|
anim.gameObject.SetActive(false);
|
||||||
if (applause) Jukebox.PlayOneShot("applause", caller.timer + caller.startBeat + 1f);
|
if (applause) SoundByte.PlayOneShot("applause", caller.timer + caller.startBeat + 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Out(PlayerActionEvent caller) { }
|
void Out(PlayerActionEvent caller) { }
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
@ -99,7 +100,7 @@ namespace HeavenStudio.Games
|
||||||
public int alienSpeakCount;
|
public int alienSpeakCount;
|
||||||
public int translatorSpeakCount;
|
public int translatorSpeakCount;
|
||||||
public bool hasMissed;
|
public bool hasMissed;
|
||||||
private float lastReportedBeat = 0;
|
private double lastReportedBeat = 0;
|
||||||
|
|
||||||
[Header("Components")]
|
[Header("Components")]
|
||||||
[SerializeField] GameObject alien;
|
[SerializeField] GameObject alien;
|
||||||
|
@ -119,7 +120,7 @@ namespace HeavenStudio.Games
|
||||||
[Header("Variables")]
|
[Header("Variables")]
|
||||||
int currentVoicelineIndex = -1;
|
int currentVoicelineIndex = -1;
|
||||||
public bool intervalStarted;
|
public bool intervalStarted;
|
||||||
float intervalStartBeat;
|
double intervalStartBeat;
|
||||||
public float beatInterval = 4f;
|
public float beatInterval = 4f;
|
||||||
public bool noHitOnce, isSpeaking;
|
public bool noHitOnce, isSpeaking;
|
||||||
//public int version;
|
//public int version;
|
||||||
|
@ -137,7 +138,7 @@ namespace HeavenStudio.Games
|
||||||
static List<QueuedSecondContactInput> queuedInputs = new List<QueuedSecondContactInput>();
|
static List<QueuedSecondContactInput> queuedInputs = new List<QueuedSecondContactInput>();
|
||||||
struct QueuedSecondContactInput
|
struct QueuedSecondContactInput
|
||||||
{
|
{
|
||||||
public float beatAwayFromStart;
|
public double beatAwayFromStart;
|
||||||
public string dialogue;
|
public string dialogue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +190,7 @@ namespace HeavenStudio.Games
|
||||||
translateFailTextbox.SetActive(false);
|
translateFailTextbox.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetIntervalStart(float beat, float interval, string outDialogue)
|
public void SetIntervalStart(double beat, float interval, string outDialogue)
|
||||||
{
|
{
|
||||||
translator.GetComponent<Animator>().Play("translator_lookAtAlien", 0, 0);
|
translator.GetComponent<Animator>().Play("translator_lookAtAlien", 0, 0);
|
||||||
if (!intervalStarted)
|
if (!intervalStarted)
|
||||||
|
@ -231,9 +232,9 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
liveBar.GetComponent<Animator>().Play("liveBar", 0, 0);
|
liveBar.GetComponent<Animator>().Play("liveBar", 0, 0);
|
||||||
}
|
}
|
||||||
else if (Conductor.instance.songPositionInBeats < lastReportedBeat)
|
else if (Conductor.instance.songPositionInBeatsAsDouble < lastReportedBeat)
|
||||||
{
|
{
|
||||||
lastReportedBeat = Mathf.Round(Conductor.instance.songPositionInBeats);
|
lastReportedBeat = Math.Round(Conductor.instance.songPositionInBeatsAsDouble);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PlayerInput.Pressed(true) && !IsExpectingInputNow(InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN))
|
if (PlayerInput.Pressed(true) && !IsExpectingInputNow(InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN))
|
||||||
|
@ -248,7 +249,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else if (!noHitOnce && !missionControl.activeInHierarchy)
|
else if (!noHitOnce && !missionControl.activeInHierarchy)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("firstContact/ALIEN_PLAYER_MISS2_A", -1, Jukebox.GetPitchFromSemiTones(UnityEngine.Random.Range(-2, 1), false));
|
SoundByte.PlayOneShotGame("firstContact/ALIEN_PLAYER_MISS2_A", -1, SoundByte.GetPitchFromSemiTones(UnityEngine.Random.Range(-2, 1), false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -291,7 +292,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AlienSpeak(float beat, string dialogue, int spaceNum)
|
public void AlienSpeak(double beat, string dialogue, int spaceNum)
|
||||||
{
|
{
|
||||||
queuedInputs.Add(new QueuedSecondContactInput()
|
queuedInputs.Add(new QueuedSecondContactInput()
|
||||||
{
|
{
|
||||||
|
@ -302,8 +303,8 @@ namespace HeavenStudio.Games
|
||||||
if (voiceline == currentVoicelineIndex) voiceline++;
|
if (voiceline == currentVoicelineIndex) voiceline++;
|
||||||
if (voiceline > 10) voiceline = 1;
|
if (voiceline > 10) voiceline = 1;
|
||||||
currentVoicelineIndex = voiceline;
|
currentVoicelineIndex = voiceline;
|
||||||
Jukebox.PlayOneShotGame("firstContact/Bob" + voiceline, beat, Jukebox.GetPitchFromCents(UnityEngine.Random.Range(-100, 0), false));
|
SoundByte.PlayOneShotGame("firstContact/Bob" + voiceline, beat, SoundByte.GetPitchFromCents(UnityEngine.Random.Range(-100, 0), false));
|
||||||
Jukebox.PlayOneShotGame("firstContact/BobB");
|
SoundByte.PlayOneShotGame("firstContact/BobB");
|
||||||
alien.GetComponent<Animator>().DoScaledAnimationAsync("alien_talk", 0.5f);
|
alien.GetComponent<Animator>().DoScaledAnimationAsync("alien_talk", 0.5f);
|
||||||
if (UnityEngine.Random.Range(0, 5) == 0) translator.GetComponent<Animator>().DoScaledAnimationAsync("translator_lookAtAlien_nod", 0.5f);
|
if (UnityEngine.Random.Range(0, 5) == 0) translator.GetComponent<Animator>().DoScaledAnimationAsync("translator_lookAtAlien_nod", 0.5f);
|
||||||
callDiagList.Add(dialogue);
|
callDiagList.Add(dialogue);
|
||||||
|
@ -317,10 +318,10 @@ namespace HeavenStudio.Games
|
||||||
UpdateAlienTextbox();
|
UpdateAlienTextbox();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AlienTurnOver(float beat, float length)
|
public void AlienTurnOver(double beat, float length)
|
||||||
{
|
{
|
||||||
if (queuedInputs.Count == 0) return;
|
if (queuedInputs.Count == 0) return;
|
||||||
Jukebox.PlayOneShotGame("firstContact/turnover");
|
SoundByte.PlayOneShotGame("firstContact/turnover");
|
||||||
alienTextbox.SetActive(false);
|
alienTextbox.SetActive(false);
|
||||||
alien.GetComponent<Animator>().Play("alien_point", 0, 0);
|
alien.GetComponent<Animator>().Play("alien_point", 0, 0);
|
||||||
|
|
||||||
|
@ -341,10 +342,9 @@ namespace HeavenStudio.Games
|
||||||
queuedInputs.Clear();
|
queuedInputs.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AlienSuccess(float beat)
|
public void AlienSuccess(double beat)
|
||||||
{
|
{
|
||||||
string animString = "";
|
string animString = "";
|
||||||
float secondSoundOffset = 0f;
|
|
||||||
List<MultiSound.Sound> sound = new List<MultiSound.Sound>();
|
List<MultiSound.Sound> sound = new List<MultiSound.Sound>();
|
||||||
if (!(hasMissed || noHitOnce))
|
if (!(hasMissed || noHitOnce))
|
||||||
{
|
{
|
||||||
|
@ -353,8 +353,8 @@ namespace HeavenStudio.Games
|
||||||
new MultiSound.Sound("firstContact/successCrowd", beat),
|
new MultiSound.Sound("firstContact/successCrowd", beat),
|
||||||
new MultiSound.Sound("firstContact/nod", beat),
|
new MultiSound.Sound("firstContact/nod", beat),
|
||||||
new MultiSound.Sound("firstContact/nod", beat + 0.5f),
|
new MultiSound.Sound("firstContact/nod", beat + 0.5f),
|
||||||
new MultiSound.Sound("firstContact/successExtra" + UnityEngine.Random.Range(1, 3), beat + 0.5f, Jukebox.GetPitchFromCents(UnityEngine.Random.Range(-50, 50), false)),
|
new MultiSound.Sound("firstContact/successExtra" + UnityEngine.Random.Range(1, 3), beat + 0.5f, SoundByte.GetPitchFromCents(UnityEngine.Random.Range(-50, 50), false)),
|
||||||
new MultiSound.Sound("firstContact/whistle", beat + UnityEngine.Random.Range(0.5f, 1.5f), Jukebox.GetPitchFromCents(UnityEngine.Random.Range(-50, 100), false), UnityEngine.Random.Range(0.4f, 1f)),
|
new MultiSound.Sound("firstContact/whistle", beat + UnityEngine.Random.Range(0.5f, 1.5f), SoundByte.GetPitchFromCents(UnityEngine.Random.Range(-50, 100), false), UnityEngine.Random.Range(0.4f, 1f)),
|
||||||
};
|
};
|
||||||
animString = "alien_success";
|
animString = "alien_success";
|
||||||
}
|
}
|
||||||
|
@ -410,7 +410,7 @@ namespace HeavenStudio.Games
|
||||||
translateFailText.text = respDiagBuffer;
|
translateFailText.text = respDiagBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MissionControlDisplay(float beat, bool stay, float length)
|
public void MissionControlDisplay(double beat, bool stay, float length)
|
||||||
{
|
{
|
||||||
missionControl.SetActive(true);
|
missionControl.SetActive(true);
|
||||||
|
|
||||||
|
@ -452,7 +452,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
void FailContact()
|
void FailContact()
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("firstContact/failContact");
|
SoundByte.PlayOneShotGame("firstContact/failContact");
|
||||||
translator.GetComponent<Animator>().DoScaledAnimationAsync("translator_speak", 0.5f);
|
translator.GetComponent<Animator>().DoScaledAnimationAsync("translator_speak", 0.5f);
|
||||||
if (!hasMissed && callDiagIndex == 0)
|
if (!hasMissed && callDiagIndex == 0)
|
||||||
{
|
{
|
||||||
|
@ -466,7 +466,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
void TrailingContact()
|
void TrailingContact()
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("firstContact/slightlyFail");
|
SoundByte.PlayOneShotGame("firstContact/slightlyFail");
|
||||||
translator.GetComponent<Animator>().Play("translator_eh", 0, 0);
|
translator.GetComponent<Animator>().Play("translator_eh", 0, 0);
|
||||||
if (!hasMissed)
|
if (!hasMissed)
|
||||||
{
|
{
|
||||||
|
@ -494,7 +494,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("firstContact/ALIEN_PLAYER_A", -1, Jukebox.GetPitchFromSemiTones(UnityEngine.Random.Range(-3, 3), false));
|
SoundByte.PlayOneShotGame("firstContact/ALIEN_PLAYER_A", -1, SoundByte.GetPitchFromSemiTones(UnityEngine.Random.Range(-3, 3), false));
|
||||||
translator.GetComponent<Animator>().DoScaledAnimationAsync("translator_speak", 0.5f);
|
translator.GetComponent<Animator>().DoScaledAnimationAsync("translator_speak", 0.5f);
|
||||||
if (callDiagIndex == 0) return;
|
if (callDiagIndex == 0) return;
|
||||||
TrailingContact();
|
TrailingContact();
|
||||||
|
@ -502,8 +502,8 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
translator.GetComponent<Animator>().DoScaledAnimationAsync("translator_speak", 0.5f);
|
translator.GetComponent<Animator>().DoScaledAnimationAsync("translator_speak", 0.5f);
|
||||||
Jukebox.PlayOneShotGame("firstContact/ALIEN_PLAYER_A", -1, Jukebox.GetPitchFromSemiTones(UnityEngine.Random.Range(-3, 3), false));
|
SoundByte.PlayOneShotGame("firstContact/ALIEN_PLAYER_A", -1, SoundByte.GetPitchFromSemiTones(UnityEngine.Random.Range(-3, 3), false));
|
||||||
Jukebox.PlayOneShotGame("firstContact/ALIEN_PLAYER_B");
|
SoundByte.PlayOneShotGame("firstContact/ALIEN_PLAYER_B");
|
||||||
if (hasMissed)
|
if (hasMissed)
|
||||||
{
|
{
|
||||||
caller.isEligible = false;
|
caller.isEligible = false;
|
||||||
|
@ -522,7 +522,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (!noHitOnce)
|
if (!noHitOnce)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("firstContact/alienNoHit");
|
SoundByte.PlayOneShotGame("firstContact/alienNoHit");
|
||||||
noHitOnce = true;
|
noHitOnce = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,11 +37,11 @@ namespace HeavenStudio.Games.Scripts_FirstContact
|
||||||
//{
|
//{
|
||||||
// Jukebox.PlayOneShotGame("firstContact/citrusRemix/1_r");
|
// Jukebox.PlayOneShotGame("firstContact/citrusRemix/1_r");
|
||||||
//}
|
//}
|
||||||
Jukebox.PlayOneShotGame("firstContact/" + RandomizerLines());
|
SoundByte.PlayOneShotGame("firstContact/" + RandomizerLines());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("firstContact/failContact");
|
SoundByte.PlayOneShotGame("firstContact/failContact");
|
||||||
}
|
}
|
||||||
|
|
||||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -52,7 +52,7 @@ namespace HeavenStudio.Games.Scripts_FirstContact
|
||||||
|
|
||||||
public void EhTranslation()
|
public void EhTranslation()
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("firstContact/slightlyFail");
|
SoundByte.PlayOneShotGame("firstContact/slightlyFail");
|
||||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(.5f, delegate { anim.Play("translator_eh", 0, 0);}),
|
new BeatAction.Action(.5f, delegate { anim.Play("translator_eh", 0, 0);}),
|
||||||
|
|
|
@ -118,9 +118,9 @@ namespace HeavenStudio.Games
|
||||||
static List<QueuedFlip> queuedInputs = new List<QueuedFlip>();
|
static List<QueuedFlip> queuedInputs = new List<QueuedFlip>();
|
||||||
[SerializeField] FlipperFlopFlipper flipperPlayer;
|
[SerializeField] FlipperFlopFlipper flipperPlayer;
|
||||||
[SerializeField] List<FlipperFlopFlipper> flippers = new List<FlipperFlopFlipper>();
|
[SerializeField] List<FlipperFlopFlipper> flippers = new List<FlipperFlopFlipper>();
|
||||||
List<float> queuedMovements = new List<float>();
|
List<double> queuedMovements = new();
|
||||||
static List<QueuedAttention> queuedAttentions = new List<QueuedAttention>();
|
static List<QueuedAttention> queuedAttentions = new List<QueuedAttention>();
|
||||||
static List<float> queuedFlipperRollVoiceLines = new List<float>();
|
static List<double> queuedFlipperRollVoiceLines = new();
|
||||||
float lastXPos;
|
float lastXPos;
|
||||||
float currentXPos;
|
float currentXPos;
|
||||||
float lastCameraXPos;
|
float lastCameraXPos;
|
||||||
|
@ -130,12 +130,12 @@ namespace HeavenStudio.Games
|
||||||
bool goBopFlip;
|
bool goBopFlip;
|
||||||
bool goBopTuck;
|
bool goBopTuck;
|
||||||
EasingFunction.Ease lastEase;
|
EasingFunction.Ease lastEase;
|
||||||
float walkStartBeat;
|
double walkStartBeat;
|
||||||
float walkLength;
|
float walkLength;
|
||||||
CaptainTuckBopType currentCaptainBop;
|
CaptainTuckBopType currentCaptainBop;
|
||||||
public struct QueuedFlip
|
public struct QueuedFlip
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public float length;
|
public float length;
|
||||||
public bool roll;
|
public bool roll;
|
||||||
public int uh;
|
public int uh;
|
||||||
|
@ -146,7 +146,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
public struct QueuedAttention
|
public struct QueuedAttention
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public bool mute;
|
public bool mute;
|
||||||
public bool remix5;
|
public bool remix5;
|
||||||
}
|
}
|
||||||
|
@ -245,7 +245,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
if (queuedMovements.Count > 0)
|
if (queuedMovements.Count > 0)
|
||||||
{
|
{
|
||||||
if (cond.songPositionInBeats >= queuedMovements[0])
|
if (cond.songPositionInBeatsAsDouble >= queuedMovements[0])
|
||||||
{
|
{
|
||||||
if (!isMoving)
|
if (!isMoving)
|
||||||
{
|
{
|
||||||
|
@ -310,7 +310,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, float length, int whoBops, int whoBopsAuto)
|
public void Bop(double beat, float length, int whoBops, int whoBopsAuto)
|
||||||
{
|
{
|
||||||
goBopFlip = whoBopsAuto == (int)WhoBops.Flippers || whoBopsAuto == (int)WhoBops.Both;
|
goBopFlip = whoBopsAuto == (int)WhoBops.Flippers || whoBopsAuto == (int)WhoBops.Both;
|
||||||
goBopTuck = whoBopsAuto == (int)WhoBops.CaptainTuck || whoBopsAuto == (int)WhoBops.Both;
|
goBopTuck = whoBopsAuto == (int)WhoBops.CaptainTuck || whoBopsAuto == (int)WhoBops.Both;
|
||||||
|
@ -373,7 +373,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CaptainWalk(float beat, float length, int ease)
|
public void CaptainWalk(double beat, float length, int ease)
|
||||||
{
|
{
|
||||||
captainTuckAnim.gameObject.SetActive(true);
|
captainTuckAnim.gameObject.SetActive(true);
|
||||||
isWalking = true;
|
isWalking = true;
|
||||||
|
@ -382,7 +382,7 @@ namespace HeavenStudio.Games
|
||||||
walkLength = length;
|
walkLength = length;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Flipping(float beat, float length, bool roll, int uh = 0, bool thatsIt = false, int appreciation = 0, bool heart = false, bool thatsItBarberShop = false)
|
public static void Flipping(double beat, float length, bool roll, int uh = 0, bool thatsIt = false, int appreciation = 0, bool heart = false, bool thatsItBarberShop = false)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame == "flipperFlop")
|
if (GameManager.instance.currentGame == "flipperFlop")
|
||||||
{
|
{
|
||||||
|
@ -394,7 +394,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void QueueFlips(float beat, float length, bool roll, int uh = 0, bool thatsIt = false, int appreciation = 0, bool heart = false, bool thatsItBarberShop = false)
|
public void QueueFlips(double beat, float length, bool roll, int uh = 0, bool thatsIt = false, int appreciation = 0, bool heart = false, bool thatsItBarberShop = false)
|
||||||
{
|
{
|
||||||
int flopCount = 1;
|
int flopCount = 1;
|
||||||
int recounts = 0;
|
int recounts = 0;
|
||||||
|
@ -446,12 +446,12 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat + i, delegate
|
new BeatAction.Action(beat + i, delegate
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/appreciation/thatsit1");
|
SoundByte.PlayOneShotGame("flipperFlop/appreciation/thatsit1");
|
||||||
Jukebox.PlayOneShotGame(soundToPlay);
|
SoundByte.PlayOneShotGame(soundToPlay);
|
||||||
captainTuckAnim.DoScaledAnimationAsync("CaptainBop", 0.5f);
|
captainTuckAnim.DoScaledAnimationAsync("CaptainBop", 0.5f);
|
||||||
captainTuckFaceAnim.DoScaledAnimationAsync("CaptainTuckSpeakExpression", 0.5f);
|
captainTuckFaceAnim.DoScaledAnimationAsync("CaptainTuckSpeakExpression", 0.5f);
|
||||||
}),
|
}),
|
||||||
new BeatAction.Action(beat + i + 0.5f, delegate { Jukebox.PlayOneShotGame("flipperFlop/appreciation/thatsit2"); captainTuckFaceAnim.DoScaledAnimationAsync("CaptainTuckSpeakExpression", 0.5f); }),
|
new BeatAction.Action(beat + i + 0.5f, delegate { SoundByte.PlayOneShotGame("flipperFlop/appreciation/thatsit2"); captainTuckFaceAnim.DoScaledAnimationAsync("CaptainTuckSpeakExpression", 0.5f); }),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -460,14 +460,14 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat + i - 0.5f, delegate
|
new BeatAction.Action(beat + i - 0.5f, delegate
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/appreciation/thatsit1");
|
SoundByte.PlayOneShotGame("flipperFlop/appreciation/thatsit1");
|
||||||
captainTuckFaceAnim.DoScaledAnimationAsync("CaptainTuckSpeakExpression", 0.5f);
|
captainTuckFaceAnim.DoScaledAnimationAsync("CaptainTuckSpeakExpression", 0.5f);
|
||||||
}),
|
}),
|
||||||
new BeatAction.Action(beat + i, delegate
|
new BeatAction.Action(beat + i, delegate
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/appreciation/thatsit2");
|
SoundByte.PlayOneShotGame("flipperFlop/appreciation/thatsit2");
|
||||||
captainTuckFaceAnim.DoScaledAnimationAsync("CaptainTuckSpeakExpression", 0.5f);
|
captainTuckFaceAnim.DoScaledAnimationAsync("CaptainTuckSpeakExpression", 0.5f);
|
||||||
Jukebox.PlayOneShotGame(soundToPlay);
|
SoundByte.PlayOneShotGame(soundToPlay);
|
||||||
captainTuckAnim.DoScaledAnimationAsync("CaptainBop", 0.5f);
|
captainTuckAnim.DoScaledAnimationAsync("CaptainBop", 0.5f);
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
@ -494,7 +494,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
CaptainTuckBop();
|
CaptainTuckBop();
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame(voiceLine);
|
SoundByte.PlayOneShotGame(voiceLine);
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -586,7 +586,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
CaptainTuckBop();
|
CaptainTuckBop();
|
||||||
Jukebox.PlayOneShotGame(voiceLineToPlay);
|
SoundByte.PlayOneShotGame(voiceLineToPlay);
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -650,7 +650,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AppreciationVoiceLine(float beat, int appreciation, bool heart)
|
public static void AppreciationVoiceLine(double beat, int appreciation, bool heart)
|
||||||
{
|
{
|
||||||
if (FlipperFlop.instance.missed) return;
|
if (FlipperFlop.instance.missed) return;
|
||||||
if (appreciation == (int)AppreciationType.Random) appreciation = UnityEngine.Random.Range(1, 6);
|
if (appreciation == (int)AppreciationType.Random) appreciation = UnityEngine.Random.Range(1, 6);
|
||||||
|
@ -659,7 +659,7 @@ namespace HeavenStudio.Games
|
||||||
case (int)AppreciationType.None:
|
case (int)AppreciationType.None:
|
||||||
break;
|
break;
|
||||||
case (int)AppreciationType.Good:
|
case (int)AppreciationType.Good:
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/appreciation/good");
|
SoundByte.PlayOneShotGame("flipperFlop/appreciation/good");
|
||||||
if (heart)
|
if (heart)
|
||||||
{
|
{
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -676,7 +676,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case (int)AppreciationType.GoodJob:
|
case (int)AppreciationType.GoodJob:
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/appreciation/goodjob");
|
SoundByte.PlayOneShotGame("flipperFlop/appreciation/goodjob");
|
||||||
if (heart)
|
if (heart)
|
||||||
{
|
{
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -694,7 +694,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case (int)AppreciationType.Nice:
|
case (int)AppreciationType.Nice:
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/appreciation/nice");
|
SoundByte.PlayOneShotGame("flipperFlop/appreciation/nice");
|
||||||
if (heart)
|
if (heart)
|
||||||
{
|
{
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -711,7 +711,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case (int)AppreciationType.WellDone:
|
case (int)AppreciationType.WellDone:
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/appreciation/welldone");
|
SoundByte.PlayOneShotGame("flipperFlop/appreciation/welldone");
|
||||||
if (heart)
|
if (heart)
|
||||||
{
|
{
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -729,7 +729,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case (int)AppreciationType.Yes:
|
case (int)AppreciationType.Yes:
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/appreciation/yes");
|
SoundByte.PlayOneShotGame("flipperFlop/appreciation/yes");
|
||||||
if (heart)
|
if (heart)
|
||||||
{
|
{
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -750,7 +750,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TripleFlip(float beat)
|
public void TripleFlip(double beat)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[]
|
MultiSound.Play(new MultiSound.Sound[]
|
||||||
{
|
{
|
||||||
|
@ -778,7 +778,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AttentionCompany(float beat, bool mute, bool remix5 = false)
|
public static void AttentionCompany(double beat, bool mute, bool remix5 = false)
|
||||||
{
|
{
|
||||||
if (mute)
|
if (mute)
|
||||||
{
|
{
|
||||||
|
@ -810,7 +810,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AttentionCompanyAnimation(float beat, bool mute, bool remix5)
|
public void AttentionCompanyAnimation(double beat, bool mute, bool remix5)
|
||||||
{
|
{
|
||||||
List<BeatAction.Action> speaks = new List<BeatAction.Action>()
|
List<BeatAction.Action> speaks = new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
@ -872,7 +872,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
foreach (var speak in speaks)
|
foreach (var speak in speaks)
|
||||||
{
|
{
|
||||||
if (Conductor.instance.songPositionInBeats > speak.beat)
|
if (Conductor.instance.songPositionInBeatsAsDouble > speak.beat)
|
||||||
{
|
{
|
||||||
speaksToRemove.Add(speak);
|
speaksToRemove.Add(speak);
|
||||||
}
|
}
|
||||||
|
@ -889,7 +889,7 @@ namespace HeavenStudio.Games
|
||||||
BeatAction.New(instance.gameObject, speaks);
|
BeatAction.New(instance.gameObject, speaks);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void FlipperRollVoiceLine(float beat, int amount, bool now)
|
public static void FlipperRollVoiceLine(double beat, int amount, bool now)
|
||||||
{
|
{
|
||||||
if (now)
|
if (now)
|
||||||
{
|
{
|
||||||
|
@ -1012,7 +1012,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FlipperRollVoiceLineAnimation(float beat)
|
public void FlipperRollVoiceLineAnimation(double beat)
|
||||||
{
|
{
|
||||||
List<BeatAction.Action> speaks = new List<BeatAction.Action>()
|
List<BeatAction.Action> speaks = new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
@ -1026,7 +1026,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
foreach (var speak in speaks)
|
foreach (var speak in speaks)
|
||||||
{
|
{
|
||||||
if (Conductor.instance.songPositionInBeats > speak.beat) speaksToRemove.Add(speak);
|
if (Conductor.instance.songPositionInBeatsAsDouble > speak.beat) speaksToRemove.Add(speak);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (speaksToRemove.Count > 0)
|
if (speaksToRemove.Count > 0)
|
||||||
|
|
|
@ -44,8 +44,8 @@ namespace HeavenStudio.Games.Scripts_FlipperFlop
|
||||||
faceAnim.Play("FaceAngry", 0, 0);
|
faceAnim.Play("FaceAngry", 0, 0);
|
||||||
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(Conductor.instance.songPositionInBeats + 0.1f, delegate { leftImpact.SetActive(false); rightImpact.SetActive(false); }),
|
new BeatAction.Action(Conductor.instance.songPositionInBeatsAsDouble + 0.1f, delegate { leftImpact.SetActive(false); rightImpact.SetActive(false); }),
|
||||||
new BeatAction.Action(Conductor.instance.songPositionInBeats + 0.3f, delegate { faceAnim.Play("FaceAnnoyed", 0, 0); })
|
new BeatAction.Action(Conductor.instance.songPositionInBeatsAsDouble + 0.3f, delegate { faceAnim.Play("FaceAnnoyed", 0, 0); })
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,13 +60,13 @@ namespace HeavenStudio.Games.Scripts_FlipperFlop
|
||||||
{
|
{
|
||||||
if (player && hit && !barely)
|
if (player && hit && !barely)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/roll" + (left ? "L" : "R"));
|
SoundByte.PlayOneShotGame("flipperFlop/roll" + (left ? "L" : "R"));
|
||||||
faceAnim.Play("FaceNormal", 0, 0);
|
faceAnim.Play("FaceNormal", 0, 0);
|
||||||
canBlink = true;
|
canBlink = true;
|
||||||
}
|
}
|
||||||
else if (player && barely && hit)
|
else if (player && barely && hit)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/tink");
|
SoundByte.PlayOneShotGame("flipperFlop/tink");
|
||||||
faceAnim.Play("FaceBarely", 0, 0);
|
faceAnim.Play("FaceBarely", 0, 0);
|
||||||
canBlink = false;
|
canBlink = false;
|
||||||
}
|
}
|
||||||
|
@ -74,11 +74,11 @@ namespace HeavenStudio.Games.Scripts_FlipperFlop
|
||||||
{
|
{
|
||||||
faceAnim.Play("FaceOw");
|
faceAnim.Play("FaceOw");
|
||||||
canBlink = false;
|
canBlink = false;
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/failgroan");
|
SoundByte.PlayOneShotGame("flipperFlop/failgroan");
|
||||||
game.BumpIntoOtherSeal(!left);
|
game.BumpIntoOtherSeal(!left);
|
||||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(Conductor.instance.songPositionInBeats + 0.3f, delegate { faceAnim.Play("FaceGoofy"); }),
|
new BeatAction.Action(Conductor.instance.songPositionInBeatsAsDouble + 0.3f, delegate { faceAnim.Play("FaceGoofy"); }),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,18 +91,18 @@ namespace HeavenStudio.Games.Scripts_FlipperFlop
|
||||||
if (up && !barely)
|
if (up && !barely)
|
||||||
{
|
{
|
||||||
faceAnim.Play("FaceNormal", 0, 0);
|
faceAnim.Play("FaceNormal", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"flipperFlop/flipB{UnityEngine.Random.Range(1, 3)}");
|
SoundByte.PlayOneShotGame($"flipperFlop/flipB{UnityEngine.Random.Range(1, 3)}");
|
||||||
canBlink = true;
|
canBlink = true;
|
||||||
}
|
}
|
||||||
else if (!barely)
|
else if (!barely)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame($"flipperFlop/flip{UnityEngine.Random.Range(1, 3)}");
|
SoundByte.PlayOneShotGame($"flipperFlop/flip{UnityEngine.Random.Range(1, 3)}");
|
||||||
faceAnim.Play("FaceNormal", 0, 0);
|
faceAnim.Play("FaceNormal", 0, 0);
|
||||||
canBlink = true;
|
canBlink = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/tink");
|
SoundByte.PlayOneShotGame("flipperFlop/tink");
|
||||||
faceAnim.Play("FaceBarely", 0, 0);
|
faceAnim.Play("FaceBarely", 0, 0);
|
||||||
canBlink = false;
|
canBlink = false;
|
||||||
}
|
}
|
||||||
|
@ -114,13 +114,13 @@ namespace HeavenStudio.Games.Scripts_FlipperFlop
|
||||||
string shouldReverse = up ? "Reverse" : "";
|
string shouldReverse = up ? "Reverse" : "";
|
||||||
string leftOrRight = left ? "Left" : "Right";
|
string leftOrRight = left ? "Left" : "Right";
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/failgroan", -1, 1, 0.5f);
|
SoundByte.PlayOneShotGame("flipperFlop/failgroan", -1, 1, 0.5f);
|
||||||
Jukebox.PlayOneShotGame("flipperFlop/punch", -1, 1, 0.5f);
|
SoundByte.PlayOneShotGame("flipperFlop/punch", -1, 1, 0.5f);
|
||||||
anim.DoScaledAnimationAsync(shouldReverse + "MissFlop" + leftOrRight, 0.5f);
|
anim.DoScaledAnimationAsync(shouldReverse + "MissFlop" + leftOrRight, 0.5f);
|
||||||
game.BumpIntoOtherSeal(!left);
|
game.BumpIntoOtherSeal(!left);
|
||||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(Conductor.instance.songPositionInBeats + 0.3f, delegate { faceAnim.Play("FaceGoofy"); }),
|
new BeatAction.Action(Conductor.instance.songPositionInBeatsAsDouble + 0.3f, delegate { faceAnim.Play("FaceGoofy"); }),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ namespace HeavenStudio.Games.Loaders
|
||||||
new GameAction("sigh", "Sigh")
|
new GameAction("sigh", "Sigh")
|
||||||
{
|
{
|
||||||
|
|
||||||
function = delegate { Jukebox.PlayOneShot("games/forkLifter/sigh"); }
|
function = delegate { SoundByte.PlayOneShot("games/forkLifter/sigh"); }
|
||||||
},
|
},
|
||||||
new GameAction("color", "Background Color")
|
new GameAction("color", "Background Color")
|
||||||
{
|
{
|
||||||
|
@ -137,15 +137,15 @@ namespace HeavenStudio.Games
|
||||||
instance = this;
|
instance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnGameSwitch(float beat)
|
public override void OnGameSwitch(double beat)
|
||||||
{
|
{
|
||||||
base.OnGameSwitch(beat);
|
base.OnGameSwitch(beat);
|
||||||
ForkLifterHand.CheckNextFlick();
|
ForkLifterHand.CheckNextFlick();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Flick(float beat, int type)
|
public void Flick(double beat, int type)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("forkLifter/flick");
|
SoundByte.PlayOneShotGame("forkLifter/flick");
|
||||||
handAnim.Play("Hand_Flick", 0, 0);
|
handAnim.Play("Hand_Flick", 0, 0);
|
||||||
ForkLifterHand.currentFlickIndex++;
|
ForkLifterHand.currentFlickIndex++;
|
||||||
GameObject fo = Instantiate(flickedObject);
|
GameObject fo = Instantiate(flickedObject);
|
||||||
|
|
|
@ -4,6 +4,8 @@ using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
using HeavenStudio.Util;
|
using HeavenStudio.Util;
|
||||||
|
using Jukebox;
|
||||||
|
using Jukebox.Legacy;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Scripts_ForkLifter
|
namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
{
|
{
|
||||||
|
@ -13,17 +15,17 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
|
|
||||||
public Sprite[] fastSprites;
|
public Sprite[] fastSprites;
|
||||||
|
|
||||||
private List<DynamicBeatmap.DynamicEntity> allFlickEntities = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> allFlickEntities = new List<RiqEntity>();
|
||||||
|
|
||||||
public int currentFlickIndex;
|
public int currentFlickIndex;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
var flickEntities = EventCaller.GetAllInGameManagerList("forkLifter", new string[] { "flick" });
|
var flickEntities = EventCaller.GetAllInGameManagerList("forkLifter", new string[] { "flick" });
|
||||||
List<DynamicBeatmap.DynamicEntity> tempEvents = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> tempEvents = new List<RiqEntity>();
|
||||||
for (int i = 0; i < flickEntities.Count; i++)
|
for (int i = 0; i < flickEntities.Count; i++)
|
||||||
{
|
{
|
||||||
if (flickEntities[i].beat >= Conductor.instance.songPositionInBeats)
|
if (flickEntities[i].beat >= Conductor.instance.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
tempEvents.Add(flickEntities[i]);
|
tempEvents.Add(flickEntities[i]);
|
||||||
}
|
}
|
||||||
|
@ -63,7 +65,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
|
|
||||||
public void Prepare()
|
public void Prepare()
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("forkLifter/flickPrepare");
|
SoundByte.PlayOneShotGame("forkLifter/flickPrepare");
|
||||||
GetComponent<Animator>().Play("Hand_Prepare", 0, 0);
|
GetComponent<Animator>().Play("Hand_Prepare", 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,17 +72,17 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
{
|
{
|
||||||
if (topbun && middleburger && bottombun)
|
if (topbun && middleburger && bottombun)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("forkLifter/burger");
|
SoundByte.PlayOneShotGame("forkLifter/burger");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (currentEarlyPeasOnFork > 0 || currentLatePeasOnFork > 0)
|
if (currentEarlyPeasOnFork > 0 || currentLatePeasOnFork > 0)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame($"forkLifter/cough_{Random.Range(1, 3)}");
|
SoundByte.PlayOneShotGame($"forkLifter/cough_{Random.Range(1, 3)}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("forkLifter/gulp");
|
SoundByte.PlayOneShotGame("forkLifter/gulp");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
|
|
||||||
if (p == null)
|
if (p == null)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("forkLifter/stabnohit");
|
SoundByte.PlayOneShotGame("forkLifter/stabnohit");
|
||||||
}
|
}
|
||||||
|
|
||||||
anim.Play("Player_Stab", 0, 0);
|
anim.Play("Player_Stab", 0, 0);
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
ForkLifter game;
|
ForkLifter game;
|
||||||
private Animator anim;
|
private Animator anim;
|
||||||
|
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
|
|
||||||
public int type;
|
public int type;
|
||||||
|
|
||||||
|
@ -25,8 +25,8 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
// SCHEDULING zoom sound so it lines up with when it meets the fork.
|
// SCHEDULING zoom sound so it lines up with when it meets the fork.
|
||||||
var currentDspTime = AudioSettings.dspTime;
|
var currentDspTime = AudioSettings.dspTime;
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
var zoomStartTime = currentDspTime + (double)(cond.pitchedSecPerBeat * 2) - 0.317;
|
var zoomStartTime = currentDspTime + (cond.pitchedSecPerBeatAsDouble * 2) - 0.317;
|
||||||
Jukebox.PlayOneShotScheduledGame("forkLifter/zoomFast", (double)zoomStartTime);
|
SoundByte.PlayOneShotScheduledGame("forkLifter/zoomFast", zoomStartTime);
|
||||||
|
|
||||||
GetComponentInChildren<SpriteRenderer>().sprite = game.peaSprites[type];
|
GetComponentInChildren<SpriteRenderer>().sprite = game.peaSprites[type];
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
|
|
||||||
ForkLifterPlayer.instance.FastEffectHit(type);
|
ForkLifterPlayer.instance.FastEffectHit(type);
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("forkLifter/stab");
|
SoundByte.PlayOneShotGame("forkLifter/stab");
|
||||||
|
|
||||||
ForkLifterPlayer.instance.currentPerfectPeasOnFork++;
|
ForkLifterPlayer.instance.currentPerfectPeasOnFork++;
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
|
|
||||||
ForkLifterPlayer.instance.FastEffectHit(type);
|
ForkLifterPlayer.instance.FastEffectHit(type);
|
||||||
|
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
|
|
||||||
ForkLifterPlayer.instance.currentEarlyPeasOnFork++;
|
ForkLifterPlayer.instance.currentEarlyPeasOnFork++;
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
|
|
||||||
ForkLifterPlayer.instance.FastEffectHit(type);
|
ForkLifterPlayer.instance.FastEffectHit(type);
|
||||||
|
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
|
|
||||||
ForkLifterPlayer.instance.currentLatePeasOnFork++;
|
ForkLifterPlayer.instance.currentLatePeasOnFork++;
|
||||||
Destroy(this.gameObject);
|
Destroy(this.gameObject);
|
||||||
|
@ -198,7 +198,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
|
||||||
|
|
||||||
private void Miss(PlayerActionEvent caller)
|
private void Miss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShot("forkLifter/disappointed");
|
SoundByte.PlayOneShot("forkLifter/disappointed");
|
||||||
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(startBeat+ 2.45f, delegate {
|
new BeatAction.Action(startBeat+ 2.45f, delegate {
|
||||||
|
|
|
@ -31,7 +31,7 @@ namespace HeavenStudio.Games.Scripts_GleeClub
|
||||||
|
|
||||||
void OnDestroy()
|
void OnDestroy()
|
||||||
{
|
{
|
||||||
if (currentSound != null) Jukebox.KillLoop(currentSound, gameSwitchFadeOutTime);
|
if (currentSound != null) SoundByte.KillLoop(currentSound, gameSwitchFadeOutTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TogglePresence(bool disappear)
|
public void TogglePresence(bool disappear)
|
||||||
|
@ -74,12 +74,12 @@ namespace HeavenStudio.Games.Scripts_GleeClub
|
||||||
anim.SetBool("Mega", true);
|
anim.SetBool("Mega", true);
|
||||||
anim.Play("OpenMouth", 0, 0);
|
anim.Play("OpenMouth", 0, 0);
|
||||||
shouldMegaClose = true;
|
shouldMegaClose = true;
|
||||||
if (currentSound != null) Jukebox.KillLoop(currentSound, 0f);
|
if (currentSound != null) SoundByte.KillLoop(currentSound, 0f);
|
||||||
Jukebox.PlayOneShotGame("gleeClub/LoudWailStart");
|
SoundByte.PlayOneShotGame("gleeClub/LoudWailStart");
|
||||||
currentSound = Jukebox.PlayOneShotGame("gleeClub/LoudWailLoop", -1, currentPitch, 1f, true);
|
currentSound = SoundByte.PlayOneShotGame("gleeClub/LoudWailLoop", -1, currentPitch, 1f, true);
|
||||||
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(Conductor.instance.songPositionInBeats + 1f, delegate { UnYell(); })
|
new BeatAction.Action(Conductor.instance.songPositionInBeatsAsDouble + 1f, delegate { UnYell(); })
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,8 +95,8 @@ namespace HeavenStudio.Games.Scripts_GleeClub
|
||||||
anim.SetBool("Mega", false);
|
anim.SetBool("Mega", false);
|
||||||
shouldMegaClose = false;
|
shouldMegaClose = false;
|
||||||
anim.Play("OpenMouth", 0, 0);
|
anim.Play("OpenMouth", 0, 0);
|
||||||
if (currentSound != null) Jukebox.KillLoop(currentSound, 0f);
|
if (currentSound != null) SoundByte.KillLoop(currentSound, 0f);
|
||||||
currentSound = Jukebox.PlayOneShotGame("gleeClub/WailLoop", -1, currentPitch, 1f, true);
|
currentSound = SoundByte.PlayOneShotGame("gleeClub/WailLoop", -1, currentPitch, 1f, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StopSinging(bool mega = false, bool playSound = true)
|
public void StopSinging(bool mega = false, bool playSound = true)
|
||||||
|
@ -104,8 +104,8 @@ namespace HeavenStudio.Games.Scripts_GleeClub
|
||||||
if (!singing || disappeared) return;
|
if (!singing || disappeared) return;
|
||||||
singing = false;
|
singing = false;
|
||||||
anim.Play(mega ? "MegaCloseMouth" : "CloseMouth", 0, 0);
|
anim.Play(mega ? "MegaCloseMouth" : "CloseMouth", 0, 0);
|
||||||
if (currentSound != null) Jukebox.KillLoop(currentSound, 0f);
|
if (currentSound != null) SoundByte.KillLoop(currentSound, 0f);
|
||||||
if (playSound) Jukebox.PlayOneShotGame("gleeClub/StopWail");
|
if (playSound) SoundByte.PlayOneShotGame("gleeClub/StopWail");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using HeavenStudio.Util;
|
using HeavenStudio.Util;
|
||||||
|
using Jukebox;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Loaders
|
namespace HeavenStudio.Games.Loaders
|
||||||
{
|
{
|
||||||
|
@ -113,7 +114,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
public struct QueuedSinging
|
public struct QueuedSinging
|
||||||
{
|
{
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
public float length;
|
public float length;
|
||||||
public int semiTones;
|
public int semiTones;
|
||||||
public int semiTonesPlayer;
|
public int semiTonesPlayer;
|
||||||
|
@ -133,9 +134,9 @@ namespace HeavenStudio.Games
|
||||||
public ChorusKid playerChorusKid;
|
public ChorusKid playerChorusKid;
|
||||||
[Header("Variables")]
|
[Header("Variables")]
|
||||||
static List<QueuedSinging> queuedSingings = new List<QueuedSinging>();
|
static List<QueuedSinging> queuedSingings = new List<QueuedSinging>();
|
||||||
static List<float> queuedBatons = new List<float>();
|
static List<double> queuedBatons = new();
|
||||||
bool intervalStarted;
|
bool intervalStarted;
|
||||||
float intervalStartBeat;
|
double intervalStartBeat;
|
||||||
float beatInterval = 4f;
|
float beatInterval = 4f;
|
||||||
public bool missed;
|
public bool missed;
|
||||||
public static GleeClub instance;
|
public static GleeClub instance;
|
||||||
|
@ -143,16 +144,16 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
int startIntervalIndex;
|
int startIntervalIndex;
|
||||||
|
|
||||||
private List<DynamicBeatmap.DynamicEntity> allIntervalEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> allIntervalEvents = new List<RiqEntity>();
|
||||||
|
|
||||||
void Awake()
|
void Awake()
|
||||||
{
|
{
|
||||||
instance = this;
|
instance = this;
|
||||||
var camEvents = EventCaller.GetAllInGameManagerList("gleeClub", new string[] { "intervalStart" });
|
var camEvents = EventCaller.GetAllInGameManagerList("gleeClub", new string[] { "intervalStart" });
|
||||||
List<DynamicBeatmap.DynamicEntity> tempEvents = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> tempEvents = new List<RiqEntity>();
|
||||||
for (int i = 0; i < camEvents.Count; i++)
|
for (int i = 0; i < camEvents.Count; i++)
|
||||||
{
|
{
|
||||||
if (camEvents[i].beat + camEvents[i].beat >= Conductor.instance.songPositionInBeats)
|
if (camEvents[i].beat + camEvents[i].beat >= Conductor.instance.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
tempEvents.Add(camEvents[i]);
|
tempEvents.Add(camEvents[i]);
|
||||||
}
|
}
|
||||||
|
@ -223,9 +224,9 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (startIntervalIndex < allIntervalEvents.Count && startIntervalIndex >= 0)
|
if (startIntervalIndex < allIntervalEvents.Count && startIntervalIndex >= 0)
|
||||||
{
|
{
|
||||||
if (Conductor.instance.songPositionInBeats >= allIntervalEvents[startIntervalIndex].beat)
|
if (Conductor.instance.songPositionInBeatsAsDouble >= allIntervalEvents[startIntervalIndex].beat)
|
||||||
{
|
{
|
||||||
StartInterval(allIntervalEvents[startIntervalIndex].beat, allIntervalEvents[startIntervalIndex].length);
|
StartInterval((float)allIntervalEvents[startIntervalIndex].beat, allIntervalEvents[startIntervalIndex].length);
|
||||||
startIntervalIndex++;
|
startIntervalIndex++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -256,22 +257,22 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void ForceSing(int semiTones, int semiTones1, int semiTonesPlayer)
|
public void ForceSing(int semiTones, int semiTones1, int semiTonesPlayer)
|
||||||
{
|
{
|
||||||
leftChorusKid.currentPitch = Jukebox.GetPitchFromSemiTones(semiTones, true);
|
leftChorusKid.currentPitch = SoundByte.GetPitchFromSemiTones(semiTones, true);
|
||||||
middleChorusKid.currentPitch = Jukebox.GetPitchFromSemiTones(semiTones1, true);
|
middleChorusKid.currentPitch = SoundByte.GetPitchFromSemiTones(semiTones1, true);
|
||||||
playerChorusKid.currentPitch = Jukebox.GetPitchFromSemiTones(semiTonesPlayer, true);
|
playerChorusKid.currentPitch = SoundByte.GetPitchFromSemiTones(semiTonesPlayer, true);
|
||||||
leftChorusKid.StartSinging(true);
|
leftChorusKid.StartSinging(true);
|
||||||
middleChorusKid.StartSinging(true);
|
middleChorusKid.StartSinging(true);
|
||||||
if (!PlayerInput.Pressing() || GameManager.instance.autoplay) playerChorusKid.StartSinging(true);
|
if (!PlayerInput.Pressing() || GameManager.instance.autoplay) playerChorusKid.StartSinging(true);
|
||||||
else missed = true;
|
else missed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TogetherNow(float beat, int semiTones, int semiTones1, int semiTonesPlayer, float conductorPitch)
|
public void TogetherNow(double beat, int semiTones, int semiTones1, int semiTonesPlayer, float conductorPitch)
|
||||||
{
|
{
|
||||||
if (!playerChorusKid.disappeared) ScheduleInput(beat, 2.5f, InputType.STANDARD_UP, JustTogetherNow, Out, Out);
|
if (!playerChorusKid.disappeared) ScheduleInput(beat, 2.5f, InputType.STANDARD_UP, JustTogetherNow, Out, Out);
|
||||||
if (!playerChorusKid.disappeared) ScheduleInput(beat, 3.5f, InputType.STANDARD_DOWN, JustTogetherNowClose, MissBaton, Out);
|
if (!playerChorusKid.disappeared) ScheduleInput(beat, 3.5f, InputType.STANDARD_DOWN, JustTogetherNowClose, MissBaton, Out);
|
||||||
float pitch = Jukebox.GetPitchFromSemiTones(semiTones, true);
|
float pitch = SoundByte.GetPitchFromSemiTones(semiTones, true);
|
||||||
float pitch1 = Jukebox.GetPitchFromSemiTones(semiTones1, true);
|
float pitch1 = SoundByte.GetPitchFromSemiTones(semiTones1, true);
|
||||||
currentYellPitch = Jukebox.GetPitchFromSemiTones(semiTonesPlayer, true);
|
currentYellPitch = SoundByte.GetPitchFromSemiTones(semiTonesPlayer, true);
|
||||||
MultiSound.Play(new MultiSound.Sound[]
|
MultiSound.Play(new MultiSound.Sound[]
|
||||||
{
|
{
|
||||||
new MultiSound.Sound("gleeClub/togetherEN-01", beat + 0.5f, conductorPitch),
|
new MultiSound.Sound("gleeClub/togetherEN-01", beat + 0.5f, conductorPitch),
|
||||||
|
@ -318,16 +319,16 @@ namespace HeavenStudio.Games
|
||||||
playerChorusKid.StopSinging(true);
|
playerChorusKid.StopSinging(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartInterval(float beat, float length)
|
public void StartInterval(double beat, float length)
|
||||||
{
|
{
|
||||||
intervalStartBeat = beat;
|
intervalStartBeat = beat;
|
||||||
beatInterval = length;
|
beatInterval = length;
|
||||||
intervalStarted = true;
|
intervalStarted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Sing(float beat, float length, int semiTones, int semiTones1, int semiTonesPlayer, int closeMouth, bool repeating, int semiTonesLeft2, int semiTonesLeft3, int semiTonesMiddle2)
|
public void Sing(double beat, float length, int semiTones, int semiTones1, int semiTonesPlayer, int closeMouth, bool repeating, int semiTonesLeft2, int semiTonesLeft3, int semiTonesMiddle2)
|
||||||
{
|
{
|
||||||
float pitch = Jukebox.GetPitchFromSemiTones(semiTones, true);
|
float pitch = SoundByte.GetPitchFromSemiTones(semiTones, true);
|
||||||
if (!intervalStarted)
|
if (!intervalStarted)
|
||||||
{
|
{
|
||||||
StartInterval(beat, length);
|
StartInterval(beat, length);
|
||||||
|
@ -351,7 +352,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PassTurn(float beat, float length)
|
public void PassTurn(double beat, float length)
|
||||||
{
|
{
|
||||||
if (queuedSingings.Count == 0) return;
|
if (queuedSingings.Count == 0) return;
|
||||||
intervalStarted = false;
|
intervalStarted = false;
|
||||||
|
@ -359,17 +360,17 @@ namespace HeavenStudio.Games
|
||||||
if (!playerChorusKid.disappeared) ShowHeart(beat + length + beatInterval * 2 + 1);
|
if (!playerChorusKid.disappeared) ShowHeart(beat + length + beatInterval * 2 + 1);
|
||||||
foreach (var sing in queuedSingings)
|
foreach (var sing in queuedSingings)
|
||||||
{
|
{
|
||||||
float playerPitch = Jukebox.GetPitchFromSemiTones(sing.semiTonesPlayer, true);
|
float playerPitch = SoundByte.GetPitchFromSemiTones(sing.semiTonesPlayer, true);
|
||||||
if (!playerChorusKid.disappeared)
|
if (!playerChorusKid.disappeared)
|
||||||
{
|
{
|
||||||
GleeClubSingInput spawnedInput = Instantiate(singInputPrefab, transform);
|
GleeClubSingInput spawnedInput = Instantiate(singInputPrefab, transform);
|
||||||
spawnedInput.pitch = playerPitch;
|
spawnedInput.pitch = playerPitch;
|
||||||
spawnedInput.Init(beat + length + sing.startBeat + beatInterval, sing.length, sing.closeMouth);
|
spawnedInput.Init(beat + length + sing.startBeat + beatInterval, sing.length, sing.closeMouth);
|
||||||
}
|
}
|
||||||
float pitch = Jukebox.GetPitchFromSemiTones(sing.semiTones, true);
|
float pitch = SoundByte.GetPitchFromSemiTones(sing.semiTones, true);
|
||||||
float pitchLeft2 = Jukebox.GetPitchFromSemiTones(sing.semiTonesLeft2, true);
|
float pitchLeft2 = SoundByte.GetPitchFromSemiTones(sing.semiTonesLeft2, true);
|
||||||
float pitchLeft3 = Jukebox.GetPitchFromSemiTones(sing.semiTonesLeft3, true);
|
float pitchLeft3 = SoundByte.GetPitchFromSemiTones(sing.semiTonesLeft3, true);
|
||||||
float pitchMiddle2 = Jukebox.GetPitchFromSemiTones(sing.semiTonesMiddle2, true);
|
float pitchMiddle2 = SoundByte.GetPitchFromSemiTones(sing.semiTonesMiddle2, true);
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat + length + sing.startBeat, delegate
|
new BeatAction.Action(beat + length + sing.startBeat, delegate
|
||||||
|
@ -416,7 +417,7 @@ namespace HeavenStudio.Games
|
||||||
queuedSingings.Clear();
|
queuedSingings.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PreBaton(float beat)
|
public static void PreBaton(double beat)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[]
|
MultiSound.Play(new MultiSound.Sound[]
|
||||||
{
|
{
|
||||||
|
@ -433,7 +434,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Baton(float beat)
|
public void Baton(double beat)
|
||||||
{
|
{
|
||||||
missed = false;
|
missed = false;
|
||||||
if (!playerChorusKid.disappeared) ScheduleInput(beat, 1, InputType.STANDARD_DOWN, JustBaton, MissBaton, Out);
|
if (!playerChorusKid.disappeared) ScheduleInput(beat, 1, InputType.STANDARD_DOWN, JustBaton, MissBaton, Out);
|
||||||
|
@ -469,7 +470,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
void Out(PlayerActionEvent caller) { }
|
void Out(PlayerActionEvent caller) { }
|
||||||
|
|
||||||
public void ShowHeart(float beat)
|
public void ShowHeart(double beat)
|
||||||
{
|
{
|
||||||
|
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
|
|
|
@ -18,7 +18,7 @@ namespace HeavenStudio.Games.Scripts_GleeClub
|
||||||
game = GleeClub.instance;
|
game = GleeClub.instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(float beat, float length, int close)
|
public void Init(double beat, float length, int close)
|
||||||
{
|
{
|
||||||
shouldClose = close != (int)GleeClub.MouthOpenClose.OnlyOpen;
|
shouldClose = close != (int)GleeClub.MouthOpenClose.OnlyOpen;
|
||||||
shouldOpen = close != (int)GleeClub.MouthOpenClose.OnlyClose;
|
shouldOpen = close != (int)GleeClub.MouthOpenClose.OnlyClose;
|
||||||
|
|
|
@ -3,12 +3,14 @@ using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Starpelly;
|
using Starpelly;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using Jukebox;
|
||||||
|
using Jukebox.Legacy;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Global
|
namespace HeavenStudio.Games.Global
|
||||||
{
|
{
|
||||||
public class Filter : MonoBehaviour
|
public class Filter : MonoBehaviour
|
||||||
{
|
{
|
||||||
private List<DynamicBeatmap.DynamicEntity> allFilterEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> allFilterEvents = new List<RiqEntity>();
|
||||||
private int lastFilterIndexesCount = 0; // Optimization
|
private int lastFilterIndexesCount = 0; // Optimization
|
||||||
|
|
||||||
private List<AmplifyColorEffect> amplifies = new List<AmplifyColorEffect>(); // keeps memory of all the filters on the main camera
|
private List<AmplifyColorEffect> amplifies = new List<AmplifyColorEffect>(); // keeps memory of all the filters on the main camera
|
||||||
|
@ -92,14 +94,14 @@ namespace HeavenStudio.Games.Global
|
||||||
|
|
||||||
#region Filter
|
#region Filter
|
||||||
|
|
||||||
private void OnBeatChanged(float beat)
|
private void OnBeatChanged(double beat)
|
||||||
{
|
{
|
||||||
allFilterEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "filter" });
|
allFilterEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "filter" });
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
var songPosBeat = Conductor.instance.songPositionInBeats;
|
var songPosBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
var filterIndexes = new List<int>();
|
var filterIndexes = new List<int>();
|
||||||
for (int i = 0; i < allFilterEvents.Count; i++)
|
for (int i = 0; i < allFilterEvents.Count; i++)
|
||||||
|
@ -138,17 +140,17 @@ namespace HeavenStudio.Games.Global
|
||||||
intensity = Mathf.Lerp(1, 0, Mathp.Normalize(intensity, 0, 100));
|
intensity = Mathf.Lerp(1, 0, Mathp.Normalize(intensity, 0, 100));
|
||||||
var blendAmount = intensity;
|
var blendAmount = intensity;
|
||||||
|
|
||||||
var endFadeInTime = Mathf.Lerp(filter.beat, filter.beat + filter.length, fadeInTime);
|
var endFadeInTime = Mathf.Lerp((float) filter.beat, (float) filter.beat + filter.length, fadeInTime);
|
||||||
var startFadeOutTime = filter.beat + (Mathf.Lerp(0, filter.length, Mathf.Lerp(1, 0, fadeOutTime)));
|
var startFadeOutTime = (float) filter.beat + (Mathf.Lerp(0, filter.length, Mathf.Lerp(1, 0, fadeOutTime)));
|
||||||
|
|
||||||
if (songPosBeat < endFadeInTime)
|
if (songPosBeat < endFadeInTime)
|
||||||
{
|
{
|
||||||
var normalizedFadeIn = Mathp.Normalize(songPosBeat, filter.beat, endFadeInTime);
|
var normalizedFadeIn = Mathp.Normalize((float) songPosBeat, (float) filter.beat, endFadeInTime);
|
||||||
blendAmount = Mathf.Lerp(1f, intensity, normalizedFadeIn);
|
blendAmount = Mathf.Lerp(1f, intensity, normalizedFadeIn);
|
||||||
}
|
}
|
||||||
else if (songPosBeat >= startFadeOutTime)
|
else if (songPosBeat >= startFadeOutTime)
|
||||||
{
|
{
|
||||||
var normalizedFadeOut = Mathf.Clamp01(Mathp.Normalize(songPosBeat, startFadeOutTime, filter.beat + filter.length));
|
var normalizedFadeOut = Mathf.Clamp01(Mathp.Normalize((float) songPosBeat, startFadeOutTime, (float) filter.beat + filter.length));
|
||||||
blendAmount = Mathf.Lerp(intensity, 1f, normalizedFadeOut);
|
blendAmount = Mathf.Lerp(intensity, 1f, normalizedFadeOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,35 +6,37 @@ using UnityEngine.UI;
|
||||||
|
|
||||||
using HeavenStudio.Util;
|
using HeavenStudio.Util;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Jukebox;
|
||||||
|
using Jukebox.Legacy;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Global
|
namespace HeavenStudio.Games.Global
|
||||||
{
|
{
|
||||||
public class Flash : MonoBehaviour
|
public class Flash : MonoBehaviour
|
||||||
{
|
{
|
||||||
[NonSerialized] public float startBeat;
|
[NonSerialized] public double startBeat;
|
||||||
[NonSerialized] public float length;
|
[NonSerialized] public float length;
|
||||||
|
|
||||||
[NonSerialized] public Color startColor;
|
[NonSerialized] public Color startColor;
|
||||||
[NonSerialized] public Color endColor;
|
[NonSerialized] public Color endColor;
|
||||||
|
|
||||||
[NonSerialized] public EasingFunction.Ease ease;
|
[NonSerialized] public Util.EasingFunction.Ease ease;
|
||||||
[NonSerialized] private EasingFunction.Function func;
|
[NonSerialized] private Util.EasingFunction.Function func;
|
||||||
|
|
||||||
[NonSerialized] private Image spriteRenderer;
|
[NonSerialized] private Image spriteRenderer;
|
||||||
|
|
||||||
[SerializeField] private Color currentCol;
|
[SerializeField] private Color currentCol;
|
||||||
|
|
||||||
[NonSerialized] private List<DynamicBeatmap.DynamicEntity> allFadeEvents = new List<DynamicBeatmap.DynamicEntity>();
|
[NonSerialized] private List<RiqEntity> allFadeEvents = new List<RiqEntity>();
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
spriteRenderer = GetComponent<Image>();
|
spriteRenderer = GetComponent<Image>();
|
||||||
spriteRenderer.color = currentCol;
|
spriteRenderer.color = currentCol;
|
||||||
func = EasingFunction.GetEasingFunction(EasingFunction.Ease.Linear);
|
func = Util.EasingFunction.GetEasingFunction(Util.EasingFunction.Ease.Linear);
|
||||||
GameManager.instance.onBeatChanged += OnBeatChanged;
|
GameManager.instance.onBeatChanged += OnBeatChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnBeatChanged(float beat)
|
public void OnBeatChanged(double beat)
|
||||||
{
|
{
|
||||||
allFadeEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "flash" });
|
allFadeEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "flash" });
|
||||||
// backwards-compatibility baybee
|
// backwards-compatibility baybee
|
||||||
|
@ -44,7 +46,7 @@ namespace HeavenStudio.Games.Global
|
||||||
FindFadeFromBeat(beat);
|
FindFadeFromBeat(beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FindFadeFromBeat(float beat)
|
private void FindFadeFromBeat(double beat)
|
||||||
{
|
{
|
||||||
Color startCol = Color.white;
|
Color startCol = Color.white;
|
||||||
Color endCol = Color.white;
|
Color endCol = Color.white;
|
||||||
|
@ -53,7 +55,7 @@ namespace HeavenStudio.Games.Global
|
||||||
|
|
||||||
if (allFadeEvents.Count > 0)
|
if (allFadeEvents.Count > 0)
|
||||||
{
|
{
|
||||||
DynamicBeatmap.DynamicEntity startEntity = null;
|
RiqEntity startEntity = default(RiqEntity);
|
||||||
|
|
||||||
for (int i = 0; i < allFadeEvents.Count; i++)
|
for (int i = 0; i < allFadeEvents.Count; i++)
|
||||||
{
|
{
|
||||||
|
@ -70,7 +72,7 @@ namespace HeavenStudio.Games.Global
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (startEntity != null)
|
if (!string.IsNullOrEmpty(startEntity.datamodel))
|
||||||
{
|
{
|
||||||
if (!override_)
|
if (!override_)
|
||||||
{
|
{
|
||||||
|
@ -81,24 +83,24 @@ namespace HeavenStudio.Games.Global
|
||||||
endCol = new Color(colB.r, colB.g, colB.b, startEntity["valB"]);
|
endCol = new Color(colB.r, colB.g, colB.b, startEntity["valB"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFade(startEntity.beat, startEntity.length, startCol, endCol, (EasingFunction.Ease) startEntity["ease"]);
|
SetFade(startEntity.beat, startEntity.length, startCol, endCol, (Util.EasingFunction.Ease) startEntity["ease"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetFade(float beat, float length, Color startCol, Color endCol, EasingFunction.Ease ease)
|
public void SetFade(double beat, float length, Color startCol, Color endCol, Util.EasingFunction.Ease ease)
|
||||||
{
|
{
|
||||||
this.startBeat = beat;
|
this.startBeat = beat;
|
||||||
this.length = length;
|
this.length = length;
|
||||||
this.startColor = startCol;
|
this.startColor = startCol;
|
||||||
this.endColor = endCol;
|
this.endColor = endCol;
|
||||||
this.ease = ease;
|
this.ease = ease;
|
||||||
func = EasingFunction.GetEasingFunction(ease);
|
func = Util.EasingFunction.GetEasingFunction(ease);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
FindFadeFromBeat(Conductor.instance.songPositionInBeats);
|
FindFadeFromBeat(Conductor.instance.songPositionInBeatsAsDouble);
|
||||||
float normalizedBeat = Conductor.instance.GetPositionFromBeat(startBeat, length);
|
float normalizedBeat = Conductor.instance.GetPositionFromBeat(startBeat, length);
|
||||||
// normalizedBeat = Mathf.Clamp01(normalizedBeat);
|
// normalizedBeat = Mathf.Clamp01(normalizedBeat);
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,8 @@ using UnityEngine.UI;
|
||||||
|
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using HeavenStudio.TextboxUtilities;
|
using HeavenStudio.TextboxUtilities;
|
||||||
|
using Jukebox;
|
||||||
|
using Jukebox.Legacy;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Global
|
namespace HeavenStudio.Games.Global
|
||||||
{
|
{
|
||||||
|
@ -27,10 +29,10 @@ namespace HeavenStudio.Games.Global
|
||||||
Bottom,
|
Bottom,
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<DynamicBeatmap.DynamicEntity> textboxEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> textboxEvents = new List<RiqEntity>();
|
||||||
private List<DynamicBeatmap.DynamicEntity> openCaptionsEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> openCaptionsEvents = new List<RiqEntity>();
|
||||||
private List<DynamicBeatmap.DynamicEntity> idolEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> idolEvents = new List<RiqEntity>();
|
||||||
private List<DynamicBeatmap.DynamicEntity> closedCaptionsEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> closedCaptionsEvents = new List<RiqEntity>();
|
||||||
|
|
||||||
public static Textbox instance { get; private set; }
|
public static Textbox instance { get; private set; }
|
||||||
|
|
||||||
|
@ -83,7 +85,7 @@ namespace HeavenStudio.Games.Global
|
||||||
UpdateClosedCaptionsDisplay();
|
UpdateClosedCaptionsDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnBeatChanged(float beat)
|
public void OnBeatChanged(double beat)
|
||||||
{
|
{
|
||||||
TextboxEnabler.SetActive(false);
|
TextboxEnabler.SetActive(false);
|
||||||
OpenCaptionsEnabler.SetActive(false);
|
OpenCaptionsEnabler.SetActive(false);
|
||||||
|
|
|
@ -4,6 +4,7 @@ using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
using HeavenStudio.Util;
|
using HeavenStudio.Util;
|
||||||
|
using Jukebox;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Loaders
|
namespace HeavenStudio.Games.Loaders
|
||||||
{
|
{
|
||||||
|
@ -367,8 +368,8 @@ namespace HeavenStudio.Games
|
||||||
[Header("Camera Positions")]
|
[Header("Camera Positions")]
|
||||||
public Transform[] CameraPosition;
|
public Transform[] CameraPosition;
|
||||||
Vector3 cameraPosition;
|
Vector3 cameraPosition;
|
||||||
static float startCamSpecial = Single.MinValue;
|
static double startCamSpecial = double.MinValue;
|
||||||
static float wantsReturn = Single.MinValue;
|
static double wantsReturn = double.MinValue;
|
||||||
static float cameraReturnLength = 0f;
|
static float cameraReturnLength = 0f;
|
||||||
static CameraAngle cameraAngle = CameraAngle.Normal;
|
static CameraAngle cameraAngle = CameraAngle.Normal;
|
||||||
|
|
||||||
|
@ -388,13 +389,13 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
[Header("Word")]
|
[Header("Word")]
|
||||||
public Animator Word;
|
public Animator Word;
|
||||||
static float wordClearTime = Single.MinValue;
|
static double wordClearTime = double.MinValue;
|
||||||
const float hitVoiceOffset = 0.042f;
|
const float hitVoiceOffset = 0.042f;
|
||||||
|
|
||||||
[Header("Backgrounds")]
|
[Header("Backgrounds")]
|
||||||
static int bgType = (int) BackgroundType.Yellow;
|
static int bgType = (int) BackgroundType.Yellow;
|
||||||
public static int currentBgEffect = (int) BackgroundFXType.None;
|
public static int currentBgEffect = (int) BackgroundFXType.None;
|
||||||
static float bgFadeTime = Single.MinValue;
|
static double bgFadeTime = double.MinValue;
|
||||||
static float bgFadeDuration = 0f;
|
static float bgFadeDuration = 0f;
|
||||||
static Color bgColour = Color.white;
|
static Color bgColour = Color.white;
|
||||||
public SpriteRenderer BGPlane;
|
public SpriteRenderer BGPlane;
|
||||||
|
@ -438,7 +439,7 @@ namespace HeavenStudio.Games
|
||||||
public static bool WantBop = true;
|
public static bool WantBop = true;
|
||||||
public static bool WantNori = true;
|
public static bool WantNori = true;
|
||||||
public static int WantNoriType = (int) NoriMode.None;
|
public static int WantNoriType = (int) NoriMode.None;
|
||||||
public static float WantBgChangeStart = Single.MinValue;
|
public static double WantBgChangeStart = double.MinValue;
|
||||||
public static float WantBgChangeLength = 0f;
|
public static float WantBgChangeLength = 0f;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
|
@ -448,7 +449,7 @@ namespace HeavenStudio.Games
|
||||||
cameraPosition = CameraPosition[0].position;
|
cameraPosition = CameraPosition[0].position;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnPlay(float beat)
|
public override void OnPlay(double beat)
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
if (!cond.isPlaying)
|
if (!cond.isPlaying)
|
||||||
|
@ -474,7 +475,7 @@ namespace HeavenStudio.Games
|
||||||
bgBloodRenderer = BGBlood.GetComponent<SpriteRenderer>();
|
bgBloodRenderer = BGBlood.GetComponent<SpriteRenderer>();
|
||||||
bgRadialRenderer = BGRadial.GetComponent<SpriteRenderer>();
|
bgRadialRenderer = BGRadial.GetComponent<SpriteRenderer>();
|
||||||
|
|
||||||
SetBgEffectsToLast(cond.songPositionInBeats);
|
SetBgEffectsToLast(cond.songPositionInBeatsAsDouble);
|
||||||
SetBgAndShadowCol(WantBgChangeStart, WantBgChangeLength, bgType, (int) currentShadowType, bgColour, customShadowColour, (int)currentBgEffect);
|
SetBgAndShadowCol(WantBgChangeStart, WantBgChangeLength, bgType, (int) currentShadowType, bgColour, customShadowColour, (int)currentBgEffect);
|
||||||
SetBgTexture(textureType, textureFilterType, filterColour, filterColour);
|
SetBgTexture(textureType, textureFilterType, filterColour, filterColour);
|
||||||
UpdateMaterialColour(BodyColor, HighlightColor, ItemColor);
|
UpdateMaterialColour(BodyColor, HighlightColor, ItemColor);
|
||||||
|
@ -485,7 +486,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
if (!cond.isPlaying)
|
if (!cond.isPlaying)
|
||||||
SetBgEffectsToLast(cond.songPositionInBeats);
|
SetBgEffectsToLast(cond.songPositionInBeatsAsDouble);
|
||||||
|
|
||||||
switch (currentBgEffect)
|
switch (currentBgEffect)
|
||||||
{
|
{
|
||||||
|
@ -499,30 +500,30 @@ namespace HeavenStudio.Games
|
||||||
bgEffectAnimator.Play("NoPose", -1, 0);
|
bgEffectAnimator.Play("NoPose", -1, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (cond.songPositionInBeats >= wordClearTime)
|
if (cond.songPositionInBeatsAsDouble >= wordClearTime)
|
||||||
{
|
{
|
||||||
Word.Play("NoPose");
|
Word.Play("NoPose");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cond.songPositionInBeats >= startCamSpecial && cond.songPositionInBeats <= wantsReturn)
|
if (cond.songPositionInBeatsAsDouble >= startCamSpecial && cond.songPositionInBeatsAsDouble <= wantsReturn)
|
||||||
{
|
{
|
||||||
float camX = 0f;
|
float camX = 0f;
|
||||||
float camY = 0f;
|
float camY = 0f;
|
||||||
float camZ = 0f;
|
float camZ = 0f;
|
||||||
if (cond.songPositionInBeats <= startCamSpecial + cameraReturnLength)
|
if (cond.songPositionInBeatsAsDouble <= startCamSpecial + cameraReturnLength)
|
||||||
{
|
{
|
||||||
float prog = cond.GetPositionFromBeat(startCamSpecial, cameraReturnLength);
|
float prog = cond.GetPositionFromBeat(startCamSpecial, cameraReturnLength);
|
||||||
camX = EasingFunction.EaseOutCubic(CameraPosition[0].position.x, CameraPosition[1].position.x, prog);
|
camX = Util.EasingFunction.EaseOutCubic(CameraPosition[0].position.x, CameraPosition[1].position.x, prog);
|
||||||
camY = EasingFunction.EaseOutCubic(CameraPosition[0].position.y, CameraPosition[1].position.y, prog);
|
camY = Util.EasingFunction.EaseOutCubic(CameraPosition[0].position.y, CameraPosition[1].position.y, prog);
|
||||||
camZ = EasingFunction.EaseOutCubic(CameraPosition[0].position.z, CameraPosition[1].position.z, prog);
|
camZ = Util.EasingFunction.EaseOutCubic(CameraPosition[0].position.z, CameraPosition[1].position.z, prog);
|
||||||
cameraPosition = new Vector3(camX, camY, camZ);
|
cameraPosition = new Vector3(camX, camY, camZ);
|
||||||
}
|
}
|
||||||
else if (cond.songPositionInBeats >= wantsReturn - cameraReturnLength)
|
else if (cond.songPositionInBeatsAsDouble >= wantsReturn - cameraReturnLength)
|
||||||
{
|
{
|
||||||
float prog = cond.GetPositionFromBeat(wantsReturn - cameraReturnLength, cameraReturnLength);
|
float prog = cond.GetPositionFromBeat(wantsReturn - cameraReturnLength, cameraReturnLength);
|
||||||
camX = EasingFunction.EaseOutQuad(CameraPosition[1].position.x, CameraPosition[0].position.x, prog);
|
camX = Util.EasingFunction.EaseOutQuad(CameraPosition[1].position.x, CameraPosition[0].position.x, prog);
|
||||||
camY = EasingFunction.EaseOutQuad(CameraPosition[1].position.y, CameraPosition[0].position.y, prog);
|
camY = Util.EasingFunction.EaseOutQuad(CameraPosition[1].position.y, CameraPosition[0].position.y, prog);
|
||||||
camZ = EasingFunction.EaseOutQuad(CameraPosition[1].position.z, CameraPosition[0].position.z, prog);
|
camZ = Util.EasingFunction.EaseOutQuad(CameraPosition[1].position.z, CameraPosition[0].position.z, prog);
|
||||||
cameraPosition = new Vector3(camX, camY, camZ);
|
cameraPosition = new Vector3(camX, camY, camZ);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -538,11 +539,11 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
float fadeProg = cond.GetPositionFromBeat(bgFadeTime, bgFadeDuration);
|
float fadeProg = cond.GetPositionFromBeat(bgFadeTime, bgFadeDuration);
|
||||||
if (bgFadeTime != Single.MinValue && fadeProg >= 0)
|
if (bgFadeTime != double.MinValue && fadeProg >= 0)
|
||||||
{
|
{
|
||||||
if (fadeProg >= 1f)
|
if (fadeProg >= 1f)
|
||||||
{
|
{
|
||||||
bgFadeTime = Single.MinValue;
|
bgFadeTime = double.MinValue;
|
||||||
bgFadeDuration = 0f;
|
bgFadeDuration = 0f;
|
||||||
BGPlane.color = bgColour;
|
BGPlane.color = bgColour;
|
||||||
filterColour = filterColourNext;
|
filterColour = filterColourNext;
|
||||||
|
@ -561,16 +562,16 @@ namespace HeavenStudio.Games
|
||||||
BGEffect.transform.position = new Vector3(GameCamera.instance.transform.position.x, GameCamera.instance.transform.position.y, 0);
|
BGEffect.transform.position = new Vector3(GameCamera.instance.transform.position.x, GameCamera.instance.transform.position.y, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static List<DynamicBeatmap.DynamicEntity> allHits = new List<DynamicBeatmap.DynamicEntity>();
|
static List<RiqEntity> allHits = new List<RiqEntity>();
|
||||||
static List<DynamicBeatmap.DynamicEntity> allEnds = new List<DynamicBeatmap.DynamicEntity>();
|
static List<RiqEntity> allEnds = new List<RiqEntity>();
|
||||||
public static int CountHitsToEnd(float fromBeat)
|
public static int CountHitsToEnd(double fromBeat)
|
||||||
{
|
{
|
||||||
allHits = EventCaller.GetAllInGameManagerList("karateman", new string[] { "hit", "bulb", "kick", "combo" });
|
allHits = EventCaller.GetAllInGameManagerList("karateman", new string[] { "hit", "bulb", "kick", "combo" });
|
||||||
allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" });
|
allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" });
|
||||||
|
|
||||||
allHits.Sort((x, y) => x.beat.CompareTo(y.beat));
|
allHits.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||||
allEnds.Sort((x, y) => x.beat.CompareTo(y.beat));
|
allEnds.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||||
float endBeat = Single.MaxValue;
|
double endBeat = double.MaxValue;
|
||||||
|
|
||||||
//get the beat of the closest end event
|
//get the beat of the closest end event
|
||||||
foreach (var end in allEnds)
|
foreach (var end in allEnds)
|
||||||
|
@ -604,26 +605,26 @@ namespace HeavenStudio.Games
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DoSpecialCamera(float beat, float length, bool returns)
|
public static void DoSpecialCamera(double beat, float length, bool returns)
|
||||||
{
|
{
|
||||||
if (cameraAngle == CameraAngle.Normal)
|
if (cameraAngle == CameraAngle.Normal)
|
||||||
{
|
{
|
||||||
startCamSpecial = beat;
|
startCamSpecial = beat;
|
||||||
cameraAngle = CameraAngle.Special;
|
cameraAngle = CameraAngle.Special;
|
||||||
}
|
}
|
||||||
wantsReturn = returns ? beat + length - 0.001f : Single.MaxValue;
|
wantsReturn = returns ? beat + length - 0.001f : double.MaxValue;
|
||||||
cameraReturnLength = Mathf.Min(2f, length*0.5f);
|
cameraReturnLength = Mathf.Min(2f, length*0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoWord(float beat, int type, bool doSound = true)
|
public void DoWord(double beat, int type, bool doSound = true)
|
||||||
{
|
{
|
||||||
Word.Play(DoWordSound(beat, type, doSound));
|
Word.Play(DoWordSound(beat, type, doSound));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string DoWordSound(float beat, int type, bool doSound = true)
|
public static string DoWordSound(double beat, int type, bool doSound = true)
|
||||||
{
|
{
|
||||||
String word = "NoPose";
|
String word = "NoPose";
|
||||||
float clear = 0f;
|
double clear = 0f;
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case (int) HitThree.HitTwo:
|
case (int) HitThree.HitTwo:
|
||||||
|
@ -689,18 +690,18 @@ namespace HeavenStudio.Games
|
||||||
}, forcePlay: true);
|
}, forcePlay: true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (Conductor.instance.songPositionInBeats <= clear && Conductor.instance.songPositionInBeats >= beat)
|
if (Conductor.instance.songPositionInBeatsAsDouble <= clear && Conductor.instance.songPositionInBeatsAsDouble >= beat)
|
||||||
{
|
{
|
||||||
wordClearTime = clear;
|
wordClearTime = clear;
|
||||||
}
|
}
|
||||||
return word;
|
return word;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CreateItem(float beat, int type, int expression, bool muteSound = false)
|
public void CreateItem(double beat, int type, int expression, bool muteSound = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
string outSound;
|
string outSound;
|
||||||
if (Starpelly.Mathp.GetDecimalFromFloat(beat + 0.5f) == 0f)
|
if ((beat + 0.5f) % 1.0 == 0f)
|
||||||
outSound = "karateman/offbeatObjectOut";
|
outSound = "karateman/offbeatObjectOut";
|
||||||
else
|
else
|
||||||
outSound = "karateman/objectOut";
|
outSound = "karateman/objectOut";
|
||||||
|
@ -711,7 +712,7 @@ namespace HeavenStudio.Games
|
||||||
CreateItemInstance(beat, "Item00", expression);
|
CreateItemInstance(beat, "Item00", expression);
|
||||||
break;
|
break;
|
||||||
case (int) HitType.Lightbulb:
|
case (int) HitType.Lightbulb:
|
||||||
if (Starpelly.Mathp.GetDecimalFromFloat(beat + 0.5f) == 0f)
|
if ((beat + 0.5f) % 1.0 == 0f)
|
||||||
outSound = "karateman/offbeatLightbulbOut";
|
outSound = "karateman/offbeatLightbulbOut";
|
||||||
else
|
else
|
||||||
outSound = "karateman/lightbulbOut";
|
outSound = "karateman/lightbulbOut";
|
||||||
|
@ -740,13 +741,13 @@ namespace HeavenStudio.Games
|
||||||
CreateItemInstance(beat, "Item00", expression);
|
CreateItemInstance(beat, "Item00", expression);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!muteSound) Jukebox.PlayOneShotGame(outSound, forcePlay: true);
|
if (!muteSound) SoundByte.PlayOneShotGame(outSound, forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CreateBulbSpecial(float beat, int type, Color c, int expression)
|
public void CreateBulbSpecial(double beat, int type, Color c, int expression)
|
||||||
{
|
{
|
||||||
string outSound;
|
string outSound;
|
||||||
if (Starpelly.Mathp.GetDecimalFromFloat(beat + 0.5f) == 0f)
|
if (beat + 0.5f % 1.0 == 0f)
|
||||||
outSound = "karateman/offbeatLightbulbOut";
|
outSound = "karateman/offbeatLightbulbOut";
|
||||||
else
|
else
|
||||||
outSound = "karateman/lightbulbOut";
|
outSound = "karateman/lightbulbOut";
|
||||||
|
@ -756,12 +757,12 @@ namespace HeavenStudio.Games
|
||||||
mobj.GetComponent<KarateManPot>().SetBulbColor(c);
|
mobj.GetComponent<KarateManPot>().SetBulbColor(c);
|
||||||
else
|
else
|
||||||
mobj.GetComponent<KarateManPot>().SetBulbColor(LightBulbColors[type]);
|
mobj.GetComponent<KarateManPot>().SetBulbColor(LightBulbColors[type]);
|
||||||
Jukebox.PlayOneShotGame(outSound, forcePlay: true);
|
SoundByte.PlayOneShotGame(outSound, forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Combo(float beat, int expression)
|
public void Combo(double beat, int expression)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("karateman/barrelOutCombos", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/barrelOutCombos", forcePlay: true);
|
||||||
|
|
||||||
int comboId = KarateManPot.GetNewCombo();
|
int comboId = KarateManPot.GetNewCombo();
|
||||||
|
|
||||||
|
@ -786,9 +787,9 @@ namespace HeavenStudio.Games
|
||||||
}, forcePlay: true);
|
}, forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Kick(float beat, bool ball, int expression)
|
public void Kick(double beat, bool ball, int expression)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("karateman/barrelOutKicks", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/barrelOutKicks", forcePlay: true);
|
||||||
|
|
||||||
CreateItemInstance(beat, "Item05", expression, KarateManPot.ItemType.KickBarrel, content: ball);
|
CreateItemInstance(beat, "Item05", expression, KarateManPot.ItemType.KickBarrel, content: ball);
|
||||||
|
|
||||||
|
@ -801,7 +802,7 @@ namespace HeavenStudio.Games
|
||||||
}, forcePlay: true);
|
}, forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GameObject CreateItemInstance(float beat, string awakeAnim, int successExpression, KarateManPot.ItemType type = KarateManPot.ItemType.Pot, int comboId = -1, bool content = false)
|
public GameObject CreateItemInstance(double beat, string awakeAnim, int successExpression, KarateManPot.ItemType type = KarateManPot.ItemType.Pot, int comboId = -1, bool content = false)
|
||||||
{
|
{
|
||||||
GameObject mobj = GameObject.Instantiate(Item, ItemHolder);
|
GameObject mobj = GameObject.Instantiate(Item, ItemHolder);
|
||||||
KarateManPot mobjDat = mobj.GetComponent<KarateManPot>();
|
KarateManPot mobjDat = mobj.GetComponent<KarateManPot>();
|
||||||
|
@ -817,9 +818,9 @@ namespace HeavenStudio.Games
|
||||||
return mobj;
|
return mobj;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetBgEffectsToLast(float beat)
|
void SetBgEffectsToLast(double beat)
|
||||||
{
|
{
|
||||||
var bgfx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/set background effects");
|
var bgfx = GameManager.instance.Beatmap.Entities.FindAll(en => en.datamodel == "karateman/set background effects");
|
||||||
for (int i = 0; i < bgfx.Count; i++)
|
for (int i = 0; i < bgfx.Count; i++)
|
||||||
{
|
{
|
||||||
var e = bgfx[i];
|
var e = bgfx[i];
|
||||||
|
@ -827,7 +828,7 @@ namespace HeavenStudio.Games
|
||||||
break;
|
break;
|
||||||
SetBgEffectsUnloaded(e.beat, e.length, e["type"], e["type2"], e["colorA"], e["colorB"], e["type3"], e["type4"], e["type5"], e["colorC"], e["colorD"]);
|
SetBgEffectsUnloaded(e.beat, e.length, e["type"], e["type2"], e["colorA"], e["colorB"], e["type3"], e["type4"], e["type5"], e["colorC"], e["colorD"]);
|
||||||
}
|
}
|
||||||
var camfx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/special camera");
|
var camfx = GameManager.instance.Beatmap.Entities.FindAll(en => en.datamodel == "karateman/special camera");
|
||||||
DoSpecialCamera(0, 0, true);
|
DoSpecialCamera(0, 0, true);
|
||||||
for (int i = 0; i < camfx.Count; i++)
|
for (int i = 0; i < camfx.Count; i++)
|
||||||
{
|
{
|
||||||
|
@ -836,7 +837,7 @@ namespace HeavenStudio.Games
|
||||||
break;
|
break;
|
||||||
DoSpecialCamera(e.beat, e.length, e["toggle"]);
|
DoSpecialCamera(e.beat, e.length, e["toggle"]);
|
||||||
}
|
}
|
||||||
var objfx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/set object colors");
|
var objfx = GameManager.instance.Beatmap.Entities.FindAll(en => en.datamodel == "karateman/set object colors");
|
||||||
for (int i = 0; i < objfx.Count; i++)
|
for (int i = 0; i < objfx.Count; i++)
|
||||||
{
|
{
|
||||||
var e = objfx[i];
|
var e = objfx[i];
|
||||||
|
@ -848,7 +849,7 @@ namespace HeavenStudio.Games
|
||||||
SetBgTexture(textureType, textureFilterType, filterColour, filterColour);
|
SetBgTexture(textureType, textureFilterType, filterColour, filterColour);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetBgEffectsUnloaded(float beat, float length, int newBgType, int newShadowType, Color bgCol, Color shadowCol, int bgFx, int texture, int textureFilter, Color filterCol, Color filterColNext)
|
public static void SetBgEffectsUnloaded(double beat, float length, int newBgType, int newShadowType, Color bgCol, Color shadowCol, int bgFx, int texture, int textureFilter, Color filterCol, Color filterColNext)
|
||||||
{
|
{
|
||||||
WantBgChangeStart = beat;
|
WantBgChangeStart = beat;
|
||||||
WantBgChangeLength = length;
|
WantBgChangeLength = length;
|
||||||
|
@ -863,7 +864,7 @@ namespace HeavenStudio.Games
|
||||||
filterColourNext = filterColNext;
|
filterColourNext = filterColNext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetBgAndShadowCol(float beat, float length, int newBgType, int shadowType, Color a, Color b, int fx)
|
public void SetBgAndShadowCol(double beat, float length, int newBgType, int shadowType, Color a, Color b, int fx)
|
||||||
{
|
{
|
||||||
SetBgFx(fx, beat, length);
|
SetBgFx(fx, beat, length);
|
||||||
UpdateShadowColour(shadowType, b);
|
UpdateShadowColour(shadowType, b);
|
||||||
|
@ -886,7 +887,7 @@ namespace HeavenStudio.Games
|
||||||
filterColour = Color.LerpUnclamped(bgColour, ShadowBlendColor, 0.45f);
|
filterColour = Color.LerpUnclamped(bgColour, ShadowBlendColor, 0.45f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetBgFx(int fx, float beat, float length)
|
public void SetBgFx(int fx, double beat, float length)
|
||||||
{
|
{
|
||||||
switch (fx)
|
switch (fx)
|
||||||
{
|
{
|
||||||
|
@ -938,7 +939,7 @@ namespace HeavenStudio.Games
|
||||||
UpdateFilterColour(bgColour, filterColour);
|
UpdateFilterColour(bgColour, filterColour);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetGameplayMods(float beat, int mode, bool combo)
|
public void SetGameplayMods(double beat, int mode, bool combo)
|
||||||
{
|
{
|
||||||
NoriGO.SetActive(true);
|
NoriGO.SetActive(true);
|
||||||
Nori.SetNoriMode(beat, mode);
|
Nori.SetNoriMode(beat, mode);
|
||||||
|
@ -1003,7 +1004,7 @@ namespace HeavenStudio.Games
|
||||||
ItemColor = objectCol;
|
ItemColor = objectCol;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetParticleEffect(float beat, int type, float windStrength, float particleStrength)
|
public void SetParticleEffect(double beat, int type, float windStrength, float particleStrength)
|
||||||
{
|
{
|
||||||
ParticleSystem.EmissionModule emm;
|
ParticleSystem.EmissionModule emm;
|
||||||
switch (type)
|
switch (type)
|
||||||
|
@ -1035,10 +1036,10 @@ namespace HeavenStudio.Games
|
||||||
Wind.windMain = windStrength;
|
Wind.windMain = windStrength;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ToggleBop(float beat, float length, bool toggle, bool autoBop)
|
public void ToggleBop(double beat, float length, bool toggle, bool autoBop)
|
||||||
{
|
{
|
||||||
if (autoBop)
|
if (autoBop)
|
||||||
Joe.bop.length = Single.MaxValue;
|
Joe.bop.length = float.MaxValue;
|
||||||
else
|
else
|
||||||
Joe.bop.length = 0;
|
Joe.bop.length = 0;
|
||||||
if (toggle)
|
if (toggle)
|
||||||
|
@ -1061,7 +1062,7 @@ namespace HeavenStudio.Games
|
||||||
WantBop = toggle;
|
WantBop = toggle;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Prepare(float beat, float length)
|
public void Prepare(double beat, float length)
|
||||||
{
|
{
|
||||||
Joe.Prepare(beat, length);
|
Joe.Prepare(beat, length);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,14 +16,14 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
public SpriteRenderer[] Shadows;
|
public SpriteRenderer[] Shadows;
|
||||||
|
|
||||||
public Color BombGlowTint;
|
public Color BombGlowTint;
|
||||||
float bombGlowStart = Single.MinValue;
|
double bombGlowStart = double.MinValue;
|
||||||
float bombGlowLength = 0f;
|
float bombGlowLength = 0f;
|
||||||
float bombGlowIntensity;
|
float bombGlowIntensity;
|
||||||
const float bombGlowRatio = 1f;
|
const float bombGlowRatio = 1f;
|
||||||
|
|
||||||
float lastPunchTime = Single.MinValue;
|
double lastPunchTime = double.MinValue;
|
||||||
float lastComboMissTime = Single.MinValue;
|
double lastComboMissTime = double.MinValue;
|
||||||
float lastUpperCutTime = Single.MinValue;
|
double lastUpperCutTime = double.MinValue;
|
||||||
public bool inCombo = false;
|
public bool inCombo = false;
|
||||||
public bool lockedInCombo = false;
|
public bool lockedInCombo = false;
|
||||||
public bool comboWaiting = false;
|
public bool comboWaiting = false;
|
||||||
|
@ -36,15 +36,15 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
|
|
||||||
public bool wantKick = false;
|
public bool wantKick = false;
|
||||||
public bool inKick = false;
|
public bool inKick = false;
|
||||||
float lastChargeTime = Single.MinValue;
|
double lastChargeTime = double.MinValue;
|
||||||
float unPrepareTime = Single.MinValue;
|
double unPrepareTime = double.MinValue;
|
||||||
float noNuriJabTime = Single.MinValue;
|
double noNuriJabTime = double.MinValue;
|
||||||
bool canEmote = false;
|
bool canEmote = false;
|
||||||
public int wantFace = 0;
|
public int wantFace = 0;
|
||||||
|
|
||||||
public bool inSpecial { get { return inCombo || lockedInCombo ||
|
public bool inSpecial { get { return inCombo || lockedInCombo ||
|
||||||
Conductor.instance.GetPositionFromBeat(lastChargeTime, 2.75f) <= 0.25f || inNuriLock; } }
|
Conductor.instance.GetPositionFromBeat(lastChargeTime, 2.75f) <= 0.25f || inNuriLock; } }
|
||||||
public bool inNuriLock { get { return (Conductor.instance.songPositionInBeats >= noNuriJabTime && Conductor.instance.songPositionInBeats < noNuriJabTime + 1f); } }
|
public bool inNuriLock { get { return (Conductor.instance.songPositionInBeatsAsDouble >= noNuriJabTime && Conductor.instance.songPositionInBeatsAsDouble < noNuriJabTime + 1f); } }
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
|
@ -54,7 +54,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
|
|
||||||
if (cond.songPositionInBeats < bombGlowStart)
|
if (cond.songPositionInBeatsAsDouble < bombGlowStart)
|
||||||
{
|
{
|
||||||
bombGlowIntensity = 1f;
|
bombGlowIntensity = 1f;
|
||||||
}
|
}
|
||||||
|
@ -62,9 +62,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
float glowProg = cond.GetPositionFromBeat(bombGlowStart, bombGlowLength);
|
float glowProg = cond.GetPositionFromBeat(bombGlowStart, bombGlowLength);
|
||||||
bombGlowIntensity = 1f - glowProg;
|
bombGlowIntensity = 1f - glowProg;
|
||||||
if (cond.songPositionInBeats >= bombGlowStart + bombGlowLength)
|
if (cond.songPositionInBeatsAsDouble >= bombGlowStart + bombGlowLength)
|
||||||
{
|
{
|
||||||
bombGlowStart = Single.MinValue;
|
bombGlowStart = double.MinValue;
|
||||||
bombGlowLength = 0f;
|
bombGlowLength = 0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,25 +76,25 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (wantFace == (int) KarateMan.KarateManFaces.Surprise) wantFace = -1;
|
if (wantFace == (int) KarateMan.KarateManFaces.Surprise) wantFace = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cond.songPositionInBeats >= noNuriJabTime && cond.songPositionInBeats < noNuriJabTime + 1f)
|
if (cond.songPositionInBeatsAsDouble >= noNuriJabTime && cond.songPositionInBeatsAsDouble < noNuriJabTime + 1f)
|
||||||
{
|
{
|
||||||
anim.DoScaledAnimation("JabNoNuri", noNuriJabTime, 1f);
|
anim.DoScaledAnimation("JabNoNuri", noNuriJabTime, 1f);
|
||||||
bop.startBeat = noNuriJabTime + 1f;
|
bop.startBeat = noNuriJabTime + 1f;
|
||||||
}
|
}
|
||||||
else if (cond.songPositionInBeats >= noNuriJabTime + 1f && noNuriJabTime != Single.MinValue)
|
else if (cond.songPositionInBeatsAsDouble >= noNuriJabTime + 1f && noNuriJabTime != double.MinValue)
|
||||||
{
|
{
|
||||||
bop.startBeat = noNuriJabTime + 1f;
|
bop.startBeat = noNuriJabTime + 1f;
|
||||||
noNuriJabTime = Single.MinValue;
|
noNuriJabTime = double.MinValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unPrepareTime != Single.MinValue && cond.songPositionInBeats >= unPrepareTime)
|
if (unPrepareTime != double.MinValue && cond.songPositionInBeatsAsDouble >= unPrepareTime)
|
||||||
{
|
{
|
||||||
unPrepareTime = Single.MinValue;
|
unPrepareTime = double.MinValue;
|
||||||
anim.speed = 1f;
|
anim.speed = 1f;
|
||||||
anim.Play("Beat", -1, 0);
|
anim.Play("Beat", -1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1, false) && cond.songPositionInBeats > bop.startBeat && cond.songPositionInBeats < bop.startBeat + bop.length && cond.songPositionInBeats >= unPrepareTime && !inCombo)
|
if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1, false) && cond.songPositionInBeatsAsDouble > bop.startBeat && cond.songPositionInBeatsAsDouble < bop.startBeat + bop.length && cond.songPositionInBeatsAsDouble >= unPrepareTime && !inCombo)
|
||||||
{
|
{
|
||||||
Bop();
|
Bop();
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
anim.speed = 1f;
|
anim.speed = 1f;
|
||||||
bop.startBeat = lastComboMissTime + 3f;
|
bop.startBeat = lastComboMissTime + 3f;
|
||||||
lastComboMissTime = Single.MinValue;
|
lastComboMissTime = double.MinValue;
|
||||||
inCombo = false;
|
inCombo = false;
|
||||||
inComboId = -1;
|
inComboId = -1;
|
||||||
shouldComboId = -1;
|
shouldComboId = -1;
|
||||||
|
@ -130,7 +130,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
anim.speed = 1f;
|
anim.speed = 1f;
|
||||||
bop.startBeat = lastChargeTime + 1.75f;
|
bop.startBeat = lastChargeTime + 1.75f;
|
||||||
lastChargeTime = Single.MinValue;
|
lastChargeTime = double.MinValue;
|
||||||
inKick = false;
|
inKick = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (!KarateMan.instance.IsExpectingInputNow(InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN))
|
if (!KarateMan.instance.IsExpectingInputNow(InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN))
|
||||||
{
|
{
|
||||||
Punch(1);
|
Punch(1);
|
||||||
Jukebox.PlayOneShotGame("karateman/swingNoHit", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/swingNoHit", forcePlay: true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (!KarateMan.instance.IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
|
if (!KarateMan.instance.IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
|
||||||
{
|
{
|
||||||
//start a forced-fail combo sequence
|
//start a forced-fail combo sequence
|
||||||
ForceFailCombo(cond.songPositionInBeats);
|
ForceFailCombo(cond.songPositionInBeatsAsDouble);
|
||||||
KarateMan.instance.ScoreMiss(2);
|
KarateMan.instance.ScoreMiss(2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -173,8 +173,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
}
|
}
|
||||||
else if (inKick && cond.GetPositionFromBeat(lastChargeTime, 2.75f) <= 0.5f && !KarateMan.instance.IsExpectingInputNow(InputType.STANDARD_UP | InputType.DIRECTION_UP))
|
else if (inKick && cond.GetPositionFromBeat(lastChargeTime, 2.75f) <= 0.5f && !KarateMan.instance.IsExpectingInputNow(InputType.STANDARD_UP | InputType.DIRECTION_UP))
|
||||||
{
|
{
|
||||||
Kick(cond.songPositionInBeats);
|
Kick(cond.songPositionInBeatsAsDouble);
|
||||||
Jukebox.PlayOneShotGame("karateman/swingKick", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/swingKick", forcePlay: true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
anim.speed = 1f;
|
anim.speed = 1f;
|
||||||
anim.Play("Beat", -1, 0);
|
anim.Play("Beat", -1, 0);
|
||||||
lastChargeTime = Single.MinValue;
|
lastChargeTime = double.MinValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Punch(int forceHand = 0)
|
public bool Punch(int forceHand = 0)
|
||||||
|
@ -194,22 +194,22 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
bool straight = false;
|
bool straight = false;
|
||||||
|
|
||||||
anim.speed = 1f;
|
anim.speed = 1f;
|
||||||
unPrepareTime = Single.MinValue;
|
unPrepareTime = double.MinValue;
|
||||||
lastChargeTime = Single.MinValue;
|
lastChargeTime = double.MinValue;
|
||||||
inKick = false;
|
inKick = false;
|
||||||
|
|
||||||
switch (forceHand)
|
switch (forceHand)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
if (cond.songPositionInBeats - lastPunchTime < 0.25f + (Minigame.LateTime() - 1f))
|
if (cond.songPositionInBeatsAsDouble - lastPunchTime < 0.25f + (Minigame.LateTime() - 1f))
|
||||||
{
|
{
|
||||||
lastPunchTime = Single.MinValue;
|
lastPunchTime = double.MinValue;
|
||||||
anim.DoScaledAnimationAsync("Straight", 0.5f);
|
anim.DoScaledAnimationAsync("Straight", 0.5f);
|
||||||
straight = true;
|
straight = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lastPunchTime = cond.songPositionInBeats;
|
lastPunchTime = cond.songPositionInBeatsAsDouble;
|
||||||
anim.DoScaledAnimationAsync("Jab", 0.5f);
|
anim.DoScaledAnimationAsync("Jab", 0.5f);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -221,12 +221,12 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
straight = true;
|
straight = true;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
lastPunchTime = Single.MinValue;
|
lastPunchTime = double.MinValue;
|
||||||
anim.DoNormalizedAnimation("JabNoNuri");
|
anim.DoNormalizedAnimation("JabNoNuri");
|
||||||
noNuriJabTime = cond.songPositionInBeats;
|
noNuriJabTime = cond.songPositionInBeatsAsDouble;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
bop.startBeat = cond.songPositionInBeats + 0.5f;
|
bop.startBeat = cond.songPositionInBeatsAsDouble + 0.5f;
|
||||||
return straight; //returns what hand was used to punch the object
|
return straight; //returns what hand was used to punch the object
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,8 +234,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame != "karateman") return;
|
if (GameManager.instance.currentGame != "karateman") return;
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
bop.startBeat = cond.songPositionInBeats + 1f;
|
bop.startBeat = cond.songPositionInBeatsAsDouble + 1f;
|
||||||
unPrepareTime = Single.MinValue;
|
unPrepareTime = double.MinValue;
|
||||||
switch (seq)
|
switch (seq)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -255,7 +255,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
anim.Play("ToReady", -1, 0);
|
anim.Play("ToReady", -1, 0);
|
||||||
bop.startBeat = cond.songPositionInBeats + 0.5f;
|
bop.startBeat = cond.songPositionInBeatsAsDouble + 0.5f;
|
||||||
lockedInCombo = false;
|
lockedInCombo = false;
|
||||||
comboWaiting = false;
|
comboWaiting = false;
|
||||||
break;
|
break;
|
||||||
|
@ -264,16 +264,16 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComboMiss(float beat)
|
public void ComboMiss(double beat)
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
lastComboMissTime = beat;
|
lastComboMissTime = beat;
|
||||||
bop.startBeat = beat + 3f;
|
bop.startBeat = beat + 3f;
|
||||||
unPrepareTime = Single.MinValue;
|
unPrepareTime = double.MinValue;
|
||||||
anim.DoNormalizedAnimation("LowKickMiss");
|
anim.DoNormalizedAnimation("LowKickMiss");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ForceFailCombo(float beat)
|
public void ForceFailCombo(double beat)
|
||||||
{
|
{
|
||||||
if (inCombo) return;
|
if (inCombo) return;
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -293,10 +293,10 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
}, forcePlay: true);
|
}, forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartKickCharge(float beat)
|
public void StartKickCharge(double beat)
|
||||||
{
|
{
|
||||||
wantKick = true;
|
wantKick = true;
|
||||||
unPrepareTime = Single.MinValue;
|
unPrepareTime = double.MinValue;
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat, delegate {
|
new BeatAction.Action(beat, delegate {
|
||||||
|
@ -311,14 +311,14 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Kick(float beat)
|
public void Kick(double beat)
|
||||||
{
|
{
|
||||||
if (!inKick) return;
|
if (!inKick) return;
|
||||||
//play the kick animation and reset stance
|
//play the kick animation and reset stance
|
||||||
anim.speed = 1f;
|
anim.speed = 1f;
|
||||||
bop.startBeat = beat + 1f;
|
bop.startBeat = beat + 1f;
|
||||||
unPrepareTime = Single.MinValue;
|
unPrepareTime = double.MinValue;
|
||||||
lastChargeTime = Single.MinValue;
|
lastChargeTime = double.MinValue;
|
||||||
inKick = false;
|
inKick = false;
|
||||||
|
|
||||||
anim.DoScaledAnimationAsync("ManKick", 0.5f);
|
anim.DoScaledAnimationAsync("ManKick", 0.5f);
|
||||||
|
@ -355,7 +355,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
KarateMan.instance.MappingMaterial.SetColor("_ColorDelta", highlightCol);
|
KarateMan.instance.MappingMaterial.SetColor("_ColorDelta", highlightCol);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Prepare(float beat, float length)
|
public void Prepare(double beat, float length)
|
||||||
{
|
{
|
||||||
anim.speed = 0f;
|
anim.speed = 0f;
|
||||||
anim.Play("Beat", -1, 0);
|
anim.Play("Beat", -1, 0);
|
||||||
|
@ -376,12 +376,12 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
|
|
||||||
public void ApplyBombGlow()
|
public void ApplyBombGlow()
|
||||||
{
|
{
|
||||||
bombGlowStart = Single.MaxValue;
|
bombGlowStart = double.MaxValue;
|
||||||
bombGlowLength = 0f;
|
bombGlowLength = 0f;
|
||||||
bombGlowIntensity = 1f;
|
bombGlowIntensity = 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveBombGlow(float beat, float length = 0.5f)
|
public void RemoveBombGlow(double beat, float length = 0.5f)
|
||||||
{
|
{
|
||||||
bombGlowStart = beat;
|
bombGlowStart = beat;
|
||||||
bombGlowLength = length;
|
bombGlowLength = length;
|
||||||
|
|
|
@ -49,7 +49,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetNoriMode(float fromBeat, int mode, int startingNori = 0)
|
public void SetNoriMode(double fromBeat, int mode, int startingNori = 0)
|
||||||
{
|
{
|
||||||
float scaleFactor = 0f;
|
float scaleFactor = 0f;
|
||||||
//clear all children of the holder
|
//clear all children of the holder
|
||||||
|
@ -143,7 +143,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (KarateMan.instance.NoriPerformance >= 0.6f && oldNori / MaxNori < 0.6f && !playedJust)
|
if (KarateMan.instance.NoriPerformance >= 0.6f && oldNori / MaxNori < 0.6f && !playedJust)
|
||||||
{
|
{
|
||||||
playedJust = true;
|
playedJust = true;
|
||||||
Jukebox.PlayOneShotGame("karateman/nori_just");
|
SoundByte.PlayOneShotGame("karateman/nori_just");
|
||||||
}
|
}
|
||||||
UpdateHeartColours();
|
UpdateHeartColours();
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (KarateMan.instance.NoriPerformance < 0.6f && oldNori / MaxNori >= 0.6f)
|
if (KarateMan.instance.NoriPerformance < 0.6f && oldNori / MaxNori >= 0.6f)
|
||||||
{
|
{
|
||||||
playedJust = false;
|
playedJust = false;
|
||||||
Jukebox.PlayOneShotGame("karateman/nori_ng");
|
SoundByte.PlayOneShotGame("karateman/nori_ng");
|
||||||
}
|
}
|
||||||
UpdateHeartColours();
|
UpdateHeartColours();
|
||||||
}
|
}
|
||||||
|
@ -194,7 +194,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (noriMode == (int) KarateMan.NoriMode.Tengoku)
|
if (noriMode == (int) KarateMan.NoriMode.Tengoku)
|
||||||
{
|
{
|
||||||
if (Nori >= MaxNori)
|
if (Nori >= MaxNori)
|
||||||
Jukebox.PlayOneShotGame("karateman/nori_through");
|
SoundByte.PlayOneShotGame("karateman/nori_through");
|
||||||
playedJust = false;
|
playedJust = false;
|
||||||
Nori = 0;
|
Nori = 0;
|
||||||
foreach (Animator anim in NoriHeartAnimators)
|
foreach (Animator anim in NoriHeartAnimators)
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
public class KarateManPot : MonoBehaviour
|
public class KarateManPot : MonoBehaviour
|
||||||
{
|
{
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
public ItemType type;
|
public ItemType type;
|
||||||
public int path = 1;
|
public int path = 1;
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
transform.position = CurrentCurve.GetPoint(Mathf.Min(prog, 1f));
|
transform.position = CurrentCurve.GetPoint(Mathf.Min(prog, 1f));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + 2f)
|
if (type == ItemType.Bomb && cond.songPositionInBeatsAsDouble >= startBeat + 2f)
|
||||||
{
|
{
|
||||||
ParticleSystem p = Instantiate(HitParticles[7], transform.position, Quaternion.identity, KarateMan.instance.ItemHolder);
|
ParticleSystem p = Instantiate(HitParticles[7], transform.position, Quaternion.identity, KarateMan.instance.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
|
@ -317,7 +317,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
break;
|
break;
|
||||||
case FlyStatus.Hit:
|
case FlyStatus.Hit:
|
||||||
prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat);
|
prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat);
|
||||||
if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + curveTargetBeat)
|
if (type == ItemType.Bomb && cond.songPositionInBeatsAsDouble >= startBeat + curveTargetBeat)
|
||||||
{
|
{
|
||||||
ParticleSystem p = Instantiate(HitParticles[7], CurrentCurve.GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
|
ParticleSystem p = Instantiate(HitParticles[7], CurrentCurve.GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
|
@ -325,17 +325,17 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
GameObject.Destroy(ShadowInstance.gameObject);
|
GameObject.Destroy(ShadowInstance.gameObject);
|
||||||
GameObject.Destroy(gameObject);
|
GameObject.Destroy(gameObject);
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("karateman/bombBreak", volume: 0.25f);
|
SoundByte.PlayOneShotGame("karateman/bombBreak", volume: 0.25f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (cond.songPositionInBeats >= startBeat + Mathf.Max(2f, curveTargetBeat) || CurrentCurve == null) {
|
else if (cond.songPositionInBeatsAsDouble >= startBeat + Mathf.Max(2f, curveTargetBeat) || CurrentCurve == null) {
|
||||||
|
|
||||||
if (type == ItemType.KickBomb)
|
if (type == ItemType.KickBomb)
|
||||||
{
|
{
|
||||||
ParticleSystem p = Instantiate(HitParticles[6], ItemCurves[7].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
|
ParticleSystem p = Instantiate(HitParticles[6], ItemCurves[7].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
}
|
}
|
||||||
else if (type == ItemType.KickBall && cond.songPositionInBeats < startBeat + curveTargetBeat + 1f)
|
else if (type == ItemType.KickBall && cond.songPositionInBeatsAsDouble < startBeat + curveTargetBeat + 1f)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GameObject.Destroy(ShadowInstance.gameObject);
|
GameObject.Destroy(ShadowInstance.gameObject);
|
||||||
|
@ -357,7 +357,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
case FlyStatus.NG:
|
case FlyStatus.NG:
|
||||||
prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat);
|
prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat);
|
||||||
|
|
||||||
if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + curveTargetBeat)
|
if (type == ItemType.Bomb && cond.songPositionInBeatsAsDouble >= startBeat + curveTargetBeat)
|
||||||
{
|
{
|
||||||
KarateMan.instance.Joe.RemoveBombGlow(startBeat + curveTargetBeat, 1f);
|
KarateMan.instance.Joe.RemoveBombGlow(startBeat + curveTargetBeat, 1f);
|
||||||
ParticleSystem p = Instantiate(HitParticles[7], CurrentCurve.GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
|
ParticleSystem p = Instantiate(HitParticles[7], CurrentCurve.GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
|
||||||
|
@ -367,7 +367,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
GameObject.Destroy(gameObject);
|
GameObject.Destroy(gameObject);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (cond.songPositionInBeats >= startBeat + Mathf.Max(2f, curveTargetBeat) || (ItemKickable() && prog >= 1f) || CurrentCurve == null) {
|
else if (cond.songPositionInBeatsAsDouble >= startBeat + Mathf.Max(2f, curveTargetBeat) || (ItemKickable() && prog >= 1f) || CurrentCurve == null) {
|
||||||
if (type == ItemType.KickBomb)
|
if (type == ItemType.KickBomb)
|
||||||
{
|
{
|
||||||
ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[8].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
|
ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[8].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
|
||||||
|
@ -393,7 +393,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
prog = cond.GetPositionFromBeat(startBeat, 1f);
|
prog = cond.GetPositionFromBeat(startBeat, 1f);
|
||||||
|
|
||||||
Vector3 pos = new Vector3(HitPosition[1].position.x + 0.25f, HitPosition[0].position.y, HitPosition[1].position.z);
|
Vector3 pos = new Vector3(HitPosition[1].position.x + 0.25f, HitPosition[0].position.y, HitPosition[1].position.z);
|
||||||
if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + 1f)
|
if (type == ItemType.Bomb && cond.songPositionInBeatsAsDouble >= startBeat + 1f)
|
||||||
{
|
{
|
||||||
KarateMan.instance.Joe.RemoveBombGlow(startBeat + 1f, 1f);
|
KarateMan.instance.Joe.RemoveBombGlow(startBeat + 1f, 1f);
|
||||||
|
|
||||||
|
@ -404,7 +404,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
GameObject.Destroy(gameObject);
|
GameObject.Destroy(gameObject);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (cond.songPositionInBeats >= startBeat + 3f)
|
else if (cond.songPositionInBeatsAsDouble >= startBeat + 3f)
|
||||||
{
|
{
|
||||||
GameObject.Destroy(ShadowInstance.gameObject);
|
GameObject.Destroy(ShadowInstance.gameObject);
|
||||||
GameObject.Destroy(gameObject);
|
GameObject.Destroy(gameObject);
|
||||||
|
@ -444,7 +444,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
case ItemType.Bulb:
|
case ItemType.Bulb:
|
||||||
CurrentCurve = ItemCurves[straight ? 1 : 0];
|
CurrentCurve = ItemCurves[straight ? 1 : 0];
|
||||||
curveTargetBeat = straight ? 1f : 1.5f;;
|
curveTargetBeat = straight ? 1f : 1.5f;;
|
||||||
Jukebox.PlayOneShotGame("karateman/lightbulbHit", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/lightbulbHit", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[5], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[5], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
|
|
||||||
if (effectTint.a == 0)
|
if (effectTint.a == 0)
|
||||||
|
@ -468,101 +468,101 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
case ItemType.Rock:
|
case ItemType.Rock:
|
||||||
CurrentCurve = ItemCurves[1];
|
CurrentCurve = ItemCurves[1];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShotGame("karateman/rockHit", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/rockHit", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[4], HitPosition[1].position, Quaternion.identity, game.ItemHolder);
|
p = Instantiate(HitParticles[4], HitPosition[1].position, Quaternion.identity, game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
|
|
||||||
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
||||||
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
||||||
break;
|
break;
|
||||||
case ItemType.Ball:
|
case ItemType.Ball:
|
||||||
CurrentCurve = ItemCurves[1];
|
CurrentCurve = ItemCurves[1];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShotGame("karateman/soccerHit", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/soccerHit", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
break;
|
break;
|
||||||
case ItemType.Cooking:
|
case ItemType.Cooking:
|
||||||
CurrentCurve = ItemCurves[1];
|
CurrentCurve = ItemCurves[1];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShotGame("karateman/cookingPot", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/cookingPot", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
game.CreateItemInstance(startBeat + 1f, "Item09", 0, ItemType.CookingLid);
|
game.CreateItemInstance(startBeat + 1f, "Item09", 0, ItemType.CookingLid);
|
||||||
GetComponent<Animator>().Play("Item08", -1, 0);
|
GetComponent<Animator>().Play("Item08", -1, 0);
|
||||||
|
|
||||||
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
||||||
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
||||||
break;
|
break;
|
||||||
case ItemType.Alien:
|
case ItemType.Alien:
|
||||||
CurrentCurve = ItemCurves[1];
|
CurrentCurve = ItemCurves[1];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShotGame("karateman/alienHit", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/alienHit", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
|
|
||||||
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
||||||
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
||||||
break;
|
break;
|
||||||
case ItemType.Bomb:
|
case ItemType.Bomb:
|
||||||
CurrentCurve = ItemCurves[1];
|
CurrentCurve = ItemCurves[1];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShotGame("karateman/bombHit", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/bombHit", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[2], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[2], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
game.Joe.RemoveBombGlow(startBeat + 1f, 1f);
|
game.Joe.RemoveBombGlow(startBeat + 1f, 1f);
|
||||||
|
|
||||||
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
||||||
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
||||||
break;
|
break;
|
||||||
case ItemType.TacoBell:
|
case ItemType.TacoBell:
|
||||||
CurrentCurve = ItemCurves[1];
|
CurrentCurve = ItemCurves[1];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShotGame("karateman/rockHit", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/rockHit", forcePlay: true);
|
||||||
Jukebox.PlayOneShotGame("karateman/tacobell", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/tacobell", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
|
|
||||||
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
if (game.IsNoriActive && game.NoriPerformance >= 1f)
|
||||||
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
|
||||||
break;
|
break;
|
||||||
case ItemType.ComboPot1:
|
case ItemType.ComboPot1:
|
||||||
CurrentCurve = ItemCurves[straight ? 1 : 0];
|
CurrentCurve = ItemCurves[straight ? 1 : 0];
|
||||||
curveTargetBeat = 1.5f;
|
curveTargetBeat = 1.5f;
|
||||||
Jukebox.PlayOneShotGame("karateman/comboHit1", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/comboHit1", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
break;
|
break;
|
||||||
case ItemType.ComboPot2:
|
case ItemType.ComboPot2:
|
||||||
CurrentCurve = ItemCurves[0];
|
CurrentCurve = ItemCurves[0];
|
||||||
curveTargetBeat = 1.5f;
|
curveTargetBeat = 1.5f;
|
||||||
Jukebox.PlayOneShotGame("karateman/comboHit1", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/comboHit1", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
break;
|
break;
|
||||||
case ItemType.ComboPot3:
|
case ItemType.ComboPot3:
|
||||||
CurrentCurve = ItemCurves[2];
|
CurrentCurve = ItemCurves[2];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShotGame("karateman/comboHit2", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/comboHit2", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], HitPosition[2].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[2].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
break;
|
break;
|
||||||
case ItemType.ComboPot4:
|
case ItemType.ComboPot4:
|
||||||
CurrentCurve = ItemCurves[3];
|
CurrentCurve = ItemCurves[3];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShotGame("karateman/comboHit3", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/comboHit3", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], HitPosition[3].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[3].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
break;
|
break;
|
||||||
case ItemType.ComboPot5:
|
case ItemType.ComboPot5:
|
||||||
CurrentCurve = ItemCurves[4];
|
CurrentCurve = ItemCurves[4];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShotGame("karateman/comboHit3", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/comboHit3", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], HitPosition[4].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[4].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
break;
|
break;
|
||||||
case ItemType.ComboBarrel:
|
case ItemType.ComboBarrel:
|
||||||
Jukebox.PlayOneShotGame("karateman/comboHit4", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/comboHit4", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[0], HitPosition[5].position, Quaternion.identity, game.ItemHolder);
|
p = Instantiate(HitParticles[0], HitPosition[5].position, Quaternion.identity, game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
p = Instantiate(HitParticles[1], HitPosition[5].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[5].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
|
@ -576,7 +576,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
game.Joe.ApplyBombGlow();
|
game.Joe.ApplyBombGlow();
|
||||||
game.CreateItemInstance(startBeat + 1f, "Item04", OnHitExpression, ItemType.KickBomb);
|
game.CreateItemInstance(startBeat + 1f, "Item04", OnHitExpression, ItemType.KickBomb);
|
||||||
}
|
}
|
||||||
Jukebox.PlayOneShotGame("karateman/barrelBreak", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/barrelBreak", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[0], HitPosition[1].position, Quaternion.Euler(0, 0, -5f), game.ItemHolder);
|
p = Instantiate(HitParticles[0], HitPosition[1].position, Quaternion.Euler(0, 0, -5f), game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
|
||||||
|
@ -584,14 +584,14 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case ItemType.KickBomb:
|
case ItemType.KickBomb:
|
||||||
Jukebox.PlayOneShotGame("karateman/bombKick", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/bombKick", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[2], ItemCurves[6].GetPoint(0.5f), Quaternion.identity, game.ItemHolder);
|
p = Instantiate(HitParticles[2], ItemCurves[6].GetPoint(0.5f), Quaternion.identity, game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
|
|
||||||
game.Joe.RemoveBombGlow(startBeat + 0.75f);
|
game.Joe.RemoveBombGlow(startBeat + 0.75f);
|
||||||
break;
|
break;
|
||||||
case ItemType.KickBall:
|
case ItemType.KickBall:
|
||||||
Jukebox.PlayOneShotGame("karateman/bombKick", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/bombKick", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[1], ItemCurves[6].GetPoint(0.5f), Quaternion.identity, game.ItemHolder);
|
p = Instantiate(HitParticles[1], ItemCurves[6].GetPoint(0.5f), Quaternion.identity, game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
break;
|
break;
|
||||||
|
@ -600,18 +600,18 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
curveTargetBeat = straight ? 1f : 1.5f;
|
curveTargetBeat = straight ? 1f : 1.5f;
|
||||||
if (game.IsNoriActive && game.NoriPerformance < 0.6f)
|
if (game.IsNoriActive && game.NoriPerformance < 0.6f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("karateman/potHit_lowNori", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/potHit_lowNori", forcePlay: true);
|
||||||
Jukebox.PlayOneShotGame("karateman/potHit", volume: 0.66f, forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/potHit", volume: 0.66f, forcePlay: true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Jukebox.PlayOneShotGame("karateman/potHit", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/potHit", forcePlay: true);
|
||||||
p = Instantiate(HitParticles[3], HitPosition[1].position, Quaternion.identity, game.ItemHolder);
|
p = Instantiate(HitParticles[3], HitPosition[1].position, Quaternion.identity, game.ItemHolder);
|
||||||
p.Play();
|
p.Play();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
status = FlyStatus.Hit;
|
status = FlyStatus.Hit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -669,7 +669,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
case ItemType.ComboPot2:
|
case ItemType.ComboPot2:
|
||||||
joe.Punch(2);
|
joe.Punch(2);
|
||||||
if (joe.GetComboId() != comboId)
|
if (joe.GetComboId() != comboId)
|
||||||
Jukebox.PlayOneShotGame("karateman/swingNoHit_Alt", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/swingNoHit_Alt", forcePlay: true);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ItemHitEffect();
|
ItemHitEffect();
|
||||||
|
@ -687,7 +687,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
//if the button isn't held anymore make Joe spin
|
//if the button isn't held anymore make Joe spin
|
||||||
if (joe.GetComboId() != comboId) {
|
if (joe.GetComboId() != comboId) {
|
||||||
joe.ComboMiss(startBeat + 1f);
|
joe.ComboMiss(startBeat + 1f);
|
||||||
Jukebox.PlayOneShotGame("karateman/comboMiss", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/comboMiss", forcePlay: true);
|
||||||
joe.SetShouldComboId(-2);
|
joe.SetShouldComboId(-2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -710,7 +710,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoHitExpression(float offset)
|
void DoHitExpression(double offset)
|
||||||
{
|
{
|
||||||
if (OnHitExpression == (int) KarateMan.KarateManFaces.Normal)
|
if (OnHitExpression == (int) KarateMan.KarateManFaces.Normal)
|
||||||
return;
|
return;
|
||||||
|
@ -733,10 +733,10 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (status == FlyStatus.Fly && !(joe.inCombo || joe.inNuriLock)) {
|
if (status == FlyStatus.Fly && !(joe.inCombo || joe.inNuriLock)) {
|
||||||
if (state <= -1f || state >= 1f) {
|
if (state <= -1f || state >= 1f) {
|
||||||
bool straight = joe.Punch(ItemPunchHand());
|
bool straight = joe.Punch(ItemPunchHand());
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
CurrentCurve = ItemCurves[6];
|
CurrentCurve = ItemCurves[6];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
status = FlyStatus.NG;
|
status = FlyStatus.NG;
|
||||||
|
|
||||||
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Sad);
|
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Sad);
|
||||||
|
@ -755,9 +755,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (ItemNeedNori() && KarateMan.instance.NoriPerformance < 0.6f)
|
if (ItemNeedNori() && KarateMan.instance.NoriPerformance < 0.6f)
|
||||||
{
|
{
|
||||||
CreateHitMark(false);
|
CreateHitMark(false);
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
status = FlyStatus.HitWeak;
|
status = FlyStatus.HitWeak;
|
||||||
Jukebox.PlayOneShotGame("karateman/hitNoNori", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/hitNoNori", forcePlay: true);
|
||||||
joe.Punch(3);
|
joe.Punch(3);
|
||||||
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z - 30f);
|
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z - 30f);
|
||||||
KarateMan.instance.Nori.DoNG();
|
KarateMan.instance.Nori.DoNG();
|
||||||
|
@ -783,12 +783,12 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
//WHEN SCORING THIS IS A MISS
|
//WHEN SCORING THIS IS A MISS
|
||||||
var joe = KarateMan.instance.Joe;
|
var joe = KarateMan.instance.Joe;
|
||||||
if (status == FlyStatus.Fly && !(joe.inCombo || joe.inNuriLock)) {
|
if (status == FlyStatus.Fly && !(joe.inCombo || joe.inNuriLock)) {
|
||||||
joe.ForceFailCombo(Conductor.instance.songPositionInBeats);
|
joe.ForceFailCombo(Conductor.instance.songPositionInBeatsAsDouble);
|
||||||
if (state <= -1f || state >= 1f) {
|
if (state <= -1f || state >= 1f) {
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
CurrentCurve = ItemCurves[6];
|
CurrentCurve = ItemCurves[6];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
status = FlyStatus.NG;
|
status = FlyStatus.NG;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -821,7 +821,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
new BeatAction.Action(startBeat + 2f, delegate {
|
new BeatAction.Action(startBeat + 2f, delegate {
|
||||||
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
|
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
|
||||||
Jukebox.PlayOneShotGame("karateman/karate_through", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/karate_through", forcePlay: true);
|
||||||
}),
|
}),
|
||||||
new BeatAction.Action(startBeat + 5f, delegate {
|
new BeatAction.Action(startBeat + 5f, delegate {
|
||||||
if (joe.wantFace == -1)
|
if (joe.wantFace == -1)
|
||||||
|
@ -843,10 +843,10 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
joe.SetComboId(comboId);
|
joe.SetComboId(comboId);
|
||||||
joe.SetShouldComboId(comboId);
|
joe.SetShouldComboId(comboId);
|
||||||
if (state <= -1f || state >= 1f) {
|
if (state <= -1f || state >= 1f) {
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
CurrentCurve = ItemCurves[6];
|
CurrentCurve = ItemCurves[6];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
status = FlyStatus.NG;
|
status = FlyStatus.NG;
|
||||||
|
|
||||||
KarateMan.instance.Nori.DoNG();
|
KarateMan.instance.Nori.DoNG();
|
||||||
|
@ -870,7 +870,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
new BeatAction.Action(startBeat + 2f, delegate {
|
new BeatAction.Action(startBeat + 2f, delegate {
|
||||||
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
|
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
|
||||||
Jukebox.PlayOneShotGame("karateman/karate_through", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/karate_through", forcePlay: true);
|
||||||
}),
|
}),
|
||||||
new BeatAction.Action(startBeat + 5f, delegate {
|
new BeatAction.Action(startBeat + 5f, delegate {
|
||||||
if (joe.wantFace == -1)
|
if (joe.wantFace == -1)
|
||||||
|
@ -891,10 +891,10 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (status == FlyStatus.Fly && !(joe.inCombo || joe.inNuriLock)) {
|
if (status == FlyStatus.Fly && !(joe.inCombo || joe.inNuriLock)) {
|
||||||
bool straight = joe.Punch(ItemPunchHand());
|
bool straight = joe.Punch(ItemPunchHand());
|
||||||
if (state <= -1f || state >= 1f) {
|
if (state <= -1f || state >= 1f) {
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
CurrentCurve = ItemCurves[6];
|
CurrentCurve = ItemCurves[6];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
status = FlyStatus.NG;
|
status = FlyStatus.NG;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -916,10 +916,10 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
joe.SetShouldComboId(-1);
|
joe.SetShouldComboId(-1);
|
||||||
joe.ComboSequence(3);
|
joe.ComboSequence(3);
|
||||||
if (state <= -1f || state >= 1f) {
|
if (state <= -1f || state >= 1f) {
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
CurrentCurve = ItemCurves[5];
|
CurrentCurve = ItemCurves[5];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
status = FlyStatus.NG;
|
status = FlyStatus.NG;
|
||||||
|
|
||||||
BeatAction.New(joe.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(joe.gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -952,7 +952,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
joe.SetComboId(-1);
|
joe.SetComboId(-1);
|
||||||
joe.SetShouldComboId(-1);
|
joe.SetShouldComboId(-1);
|
||||||
joe.ComboSequence(3);
|
joe.ComboSequence(3);
|
||||||
Jukebox.PlayOneShotGame("karateman/swingKick", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/swingKick", forcePlay: true);
|
||||||
}
|
}
|
||||||
OnHit.CanHit(false);
|
OnHit.CanHit(false);
|
||||||
}
|
}
|
||||||
|
@ -1009,7 +1009,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame != "karateman") return;
|
if (GameManager.instance.currentGame != "karateman") return;
|
||||||
if (KarateMan.IsComboEnable && !(KarateMan.instance.Joe.inCombo || KarateMan.instance.Joe.inNuriLock))
|
if (KarateMan.IsComboEnable && !(KarateMan.instance.Joe.inCombo || KarateMan.instance.Joe.inNuriLock))
|
||||||
KarateMan.instance.Joe.ForceFailCombo(Conductor.instance.songPositionInBeats);
|
KarateMan.instance.Joe.ForceFailCombo(Conductor.instance.songPositionInBeatsAsDouble);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void KickChargeJustOrNg(PlayerActionEvent caller, float state)
|
public void KickChargeJustOrNg(PlayerActionEvent caller, float state)
|
||||||
|
@ -1019,10 +1019,10 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (status == FlyStatus.Fly && !(joe.inKick || joe.wantKick || joe.inCombo || joe.inNuriLock)) {
|
if (status == FlyStatus.Fly && !(joe.inKick || joe.wantKick || joe.inCombo || joe.inNuriLock)) {
|
||||||
joe.Punch(ItemPunchHand());
|
joe.Punch(ItemPunchHand());
|
||||||
if (state <= -1f || state >= 1f) {
|
if (state <= -1f || state >= 1f) {
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
CurrentCurve = ItemCurves[6];
|
CurrentCurve = ItemCurves[6];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
status = FlyStatus.NG;
|
status = FlyStatus.NG;
|
||||||
|
|
||||||
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Sad);
|
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Sad);
|
||||||
|
@ -1056,7 +1056,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
{
|
{
|
||||||
new BeatAction.Action(startBeat + 2f, delegate {
|
new BeatAction.Action(startBeat + 2f, delegate {
|
||||||
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
|
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
|
||||||
Jukebox.PlayOneShotGame("karateman/karate_through", forcePlay: true);
|
SoundByte.PlayOneShotGame("karateman/karate_through", forcePlay: true);
|
||||||
}),
|
}),
|
||||||
new BeatAction.Action(startBeat + 5f, delegate {
|
new BeatAction.Action(startBeat + 5f, delegate {
|
||||||
if (joe.wantFace == -1)
|
if (joe.wantFace == -1)
|
||||||
|
@ -1073,12 +1073,12 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
if (GameManager.instance.currentGame != "karateman") return;
|
if (GameManager.instance.currentGame != "karateman") return;
|
||||||
var joe = KarateMan.instance.Joe;
|
var joe = KarateMan.instance.Joe;
|
||||||
if (status == FlyStatus.Fly && joe.inKick) {
|
if (status == FlyStatus.Fly && joe.inKick) {
|
||||||
joe.Kick(Conductor.instance.songPositionInBeats);
|
joe.Kick(Conductor.instance.songPositionInBeatsAsDouble);
|
||||||
if (state <= -1f || state >= 1f) {
|
if (state <= -1f || state >= 1f) {
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
CurrentCurve = ItemCurves[8];
|
CurrentCurve = ItemCurves[8];
|
||||||
curveTargetBeat = 1f;
|
curveTargetBeat = 1f;
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
status = FlyStatus.NG;
|
status = FlyStatus.NG;
|
||||||
|
|
||||||
BeatAction.New(joe.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(joe.gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -1100,7 +1100,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
|
||||||
ItemHitEffect();
|
ItemHitEffect();
|
||||||
status = FlyStatus.Hit;
|
status = FlyStatus.Hit;
|
||||||
CurrentCurve = ItemCurves[7];
|
CurrentCurve = ItemCurves[7];
|
||||||
startBeat = Conductor.instance.songPositionInBeats;
|
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
curveTargetBeat = 3f;
|
curveTargetBeat = 3f;
|
||||||
KarateMan.instance.Nori.DoHit();
|
KarateMan.instance.Nori.DoHit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
|
|
||||||
if (PlayerInput.Pressed() && canClap && !Kitties.instance.IsExpectingInputNow(InputType.STANDARD_DOWN))
|
if (PlayerInput.Pressed() && canClap && !Kitties.instance.IsExpectingInputNow(InputType.STANDARD_DOWN))
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
if (spawnType != 3)
|
if (spawnType != 3)
|
||||||
anim.Play("ClapFail", 0, 0);
|
anim.Play("ClapFail", 0, 0);
|
||||||
else
|
else
|
||||||
|
@ -50,26 +50,26 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ScheduleClap(float beat, int type)
|
public void ScheduleClap(double beat, int type)
|
||||||
{
|
{
|
||||||
spawnType = type;
|
spawnType = type;
|
||||||
Kitties.instance.ScheduleInput(beat, 2.5f, InputType.STANDARD_DOWN, ClapSuccessOne, ClapMissOne, ClapEmpty);
|
Kitties.instance.ScheduleInput(beat, 2.5f, InputType.STANDARD_DOWN, ClapSuccessOne, ClapMissOne, ClapEmpty);
|
||||||
Kitties.instance.ScheduleInput(beat, 3f, InputType.STANDARD_DOWN, ClapSuccessTwo, ClapMissTwo, ClapEmpty);
|
Kitties.instance.ScheduleInput(beat, 3f, InputType.STANDARD_DOWN, ClapSuccessTwo, ClapMissTwo, ClapEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ScheduleRoll(float beat)
|
public void ScheduleRoll(double beat)
|
||||||
{
|
{
|
||||||
Kitties.instance.ScheduleInput(beat, 2f, InputType.STANDARD_ALT_DOWN, SpinSuccessOne, SpinMissOne, SpinEmpty);
|
Kitties.instance.ScheduleInput(beat, 2f, InputType.STANDARD_ALT_DOWN, SpinSuccessOne, SpinMissOne, SpinEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ScheduleRollFinish(float beat)
|
public void ScheduleRollFinish(double beat)
|
||||||
{
|
{
|
||||||
Debug.Log(hasSpun);
|
Debug.Log(hasSpun);
|
||||||
if (hasSpun)
|
if (hasSpun)
|
||||||
Kitties.instance.ScheduleInput(beat, 2.75f, InputType.STANDARD_ALT_UP, SpinSuccessTwo, SpinMissTwo, SpinEmpty);
|
Kitties.instance.ScheduleInput(beat, 2.75f, InputType.STANDARD_ALT_UP, SpinSuccessTwo, SpinMissTwo, SpinEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ScheduleFish(float beat)
|
public void ScheduleFish(double beat)
|
||||||
{
|
{
|
||||||
Kitties.instance.ScheduleInput(beat, 2.75f, InputType.STANDARD_DOWN, FishSuccess, FishMiss, FishEmpty);
|
Kitties.instance.ScheduleInput(beat, 2.75f, InputType.STANDARD_DOWN, FishSuccess, FishMiss, FishEmpty);
|
||||||
}
|
}
|
||||||
|
@ -80,13 +80,13 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
{
|
{
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{ //todo: proper near miss feedback
|
{ //todo: proper near miss feedback
|
||||||
Jukebox.PlayOneShotGame("kitties/ClapMiss1");
|
SoundByte.PlayOneShotGame("kitties/ClapMiss1");
|
||||||
Jukebox.PlayOneShotGame("kitties/tink");
|
SoundByte.PlayOneShotGame("kitties/tink");
|
||||||
anim.Play("ClapMiss", 0, 0);
|
anim.Play("ClapMiss", 0, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("kitties/clap1");
|
SoundByte.PlayOneShotGame("kitties/clap1");
|
||||||
anim.Play("Clap1", 0, 0);
|
anim.Play("Clap1", 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,18 +94,18 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
{
|
{
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{ //todo: proper near miss feedback
|
{ //todo: proper near miss feedback
|
||||||
Jukebox.PlayOneShotGame("kitties/ClapMiss1");
|
SoundByte.PlayOneShotGame("kitties/ClapMiss1");
|
||||||
Jukebox.PlayOneShotGame("kitties/tink");
|
SoundByte.PlayOneShotGame("kitties/tink");
|
||||||
anim.Play("FaceClapFail", 0, 0);
|
anim.Play("FaceClapFail", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("kitties/clap1");
|
SoundByte.PlayOneShotGame("kitties/clap1");
|
||||||
anim.Play("FaceClap", 0, 0);
|
anim.Play("FaceClap", 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void ClapMissOne(PlayerActionEvent Caller)
|
public void ClapMissOne(PlayerActionEvent Caller)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("kitties/ClapMiss1");
|
SoundByte.PlayOneShotGame("kitties/ClapMiss1");
|
||||||
}
|
}
|
||||||
public void ClapEmpty(PlayerActionEvent Caller)
|
public void ClapEmpty(PlayerActionEvent Caller)
|
||||||
{
|
{
|
||||||
|
@ -118,13 +118,13 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
{
|
{
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{ //todo: proper near miss feedback
|
{ //todo: proper near miss feedback
|
||||||
Jukebox.PlayOneShotGame("kitties/ClapMiss2");
|
SoundByte.PlayOneShotGame("kitties/ClapMiss2");
|
||||||
Jukebox.PlayOneShotGame("kitties/tink");
|
SoundByte.PlayOneShotGame("kitties/tink");
|
||||||
anim.Play("ClapMiss", 0, 0);
|
anim.Play("ClapMiss", 0, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("kitties/clap2");
|
SoundByte.PlayOneShotGame("kitties/clap2");
|
||||||
anim.Play("Clap2", 0, 0);
|
anim.Play("Clap2", 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -132,31 +132,31 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
{
|
{
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{ //todo: proper near miss feedback
|
{ //todo: proper near miss feedback
|
||||||
Jukebox.PlayOneShotGame("kitties/ClapMiss2");
|
SoundByte.PlayOneShotGame("kitties/ClapMiss2");
|
||||||
Jukebox.PlayOneShotGame("kitties/tink");
|
SoundByte.PlayOneShotGame("kitties/tink");
|
||||||
anim.Play("FaceClapFail", 0, 0);
|
anim.Play("FaceClapFail", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("kitties/clap2");
|
SoundByte.PlayOneShotGame("kitties/clap2");
|
||||||
anim.Play("FaceClap", 0, 0);
|
anim.Play("FaceClap", 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ClapMissTwo(PlayerActionEvent Caller)
|
public void ClapMissTwo(PlayerActionEvent Caller)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("kitties/ClapMiss2");
|
SoundByte.PlayOneShotGame("kitties/ClapMiss2");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpinSuccessOne(PlayerActionEvent caller, float beat)
|
public void SpinSuccessOne(PlayerActionEvent caller, float beat)
|
||||||
{
|
{
|
||||||
hasSpun = true;
|
hasSpun = true;
|
||||||
Jukebox.PlayOneShotGame("kitties/roll5");
|
SoundByte.PlayOneShotGame("kitties/roll5");
|
||||||
anim.Play("Rolling", 0, 0);
|
anim.Play("Rolling", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpinSuccessTwo(PlayerActionEvent caller, float beat)
|
public void SpinSuccessTwo(PlayerActionEvent caller, float beat)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("kitties/roll6");
|
SoundByte.PlayOneShotGame("kitties/roll6");
|
||||||
anim.Play("RollEnd", 0, 0);
|
anim.Play("RollEnd", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,8 +164,8 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
{
|
{
|
||||||
hasSpun = false;
|
hasSpun = false;
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
Jukebox.PlayOneShotGame("kitties/roll5", -1f, 1, .1f);
|
SoundByte.PlayOneShotGame("kitties/roll5", -1f, 1, .1f);
|
||||||
Jukebox.PlayOneShotGame("kitties/roll6", cond.songPositionInBeats + .75f, 1, .1f);
|
SoundByte.PlayOneShotGame("kitties/roll6", cond.songPositionInBeatsAsDouble + .75f, 1, .1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpinMissTwo(PlayerActionEvent caller)
|
public void SpinMissTwo(PlayerActionEvent caller)
|
||||||
|
@ -174,7 +174,7 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
{
|
{
|
||||||
RollFail();
|
RollFail();
|
||||||
}
|
}
|
||||||
Jukebox.PlayOneShotGame("kitties/roll6", -1f, 1, .3f);
|
SoundByte.PlayOneShotGame("kitties/roll6", -1f, 1, .3f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpinEmpty(PlayerActionEvent caller)
|
public void SpinEmpty(PlayerActionEvent caller)
|
||||||
|
@ -184,7 +184,7 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
|
|
||||||
public void RollFail()
|
public void RollFail()
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
anim.Play("RollFail", 0, 0);
|
anim.Play("RollFail", 0, 0);
|
||||||
hasSpun = false;
|
hasSpun = false;
|
||||||
}
|
}
|
||||||
|
@ -192,14 +192,14 @@ namespace HeavenStudio.Games.Scripts_Kitties
|
||||||
public void FishSuccess(PlayerActionEvent caller, float beat)
|
public void FishSuccess(PlayerActionEvent caller, float beat)
|
||||||
{
|
{
|
||||||
Kitties.instance.RemoveCats(false);
|
Kitties.instance.RemoveCats(false);
|
||||||
Jukebox.PlayOneShotGame("kitties/fish4");
|
SoundByte.PlayOneShotGame("kitties/fish4");
|
||||||
fish.Play("CaughtSuccess", 0, 0);
|
fish.Play("CaughtSuccess", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FishMiss(PlayerActionEvent caller)
|
public void FishMiss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
Kitties.instance.RemoveCats(false);
|
Kitties.instance.RemoveCats(false);
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
fish.Play("CaughtFail", 0, 0);
|
fish.Play("CaughtFail", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Clap(bool isMice, bool isInverse, bool keepSpawned, float beat, int type)
|
public void Clap(bool isMice, bool isInverse, bool keepSpawned, double beat, int type)
|
||||||
{
|
{
|
||||||
player.ScheduleClap(beat, type);
|
player.ScheduleClap(beat, type);
|
||||||
MultiSound.Play(new MultiSound.Sound[] {
|
MultiSound.Play(new MultiSound.Sound[] {
|
||||||
|
@ -215,7 +215,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Roll(bool keepSpawned, float beat)
|
public void Roll(bool keepSpawned, double beat)
|
||||||
{
|
{
|
||||||
if (!player.canClap)
|
if (!player.canClap)
|
||||||
return;
|
return;
|
||||||
|
@ -265,7 +265,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CatchFish(float beat)
|
public void CatchFish(double beat)
|
||||||
{
|
{
|
||||||
//if (!player.canClap)
|
//if (!player.canClap)
|
||||||
// return;
|
// return;
|
||||||
|
@ -438,7 +438,7 @@ namespace HeavenStudio.Games
|
||||||
player.canClap = false;
|
player.canClap = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InstantSpawn(bool isMice, bool isInverse, float beat, int pos)
|
public void InstantSpawn(bool isMice, bool isInverse, double beat, int pos)
|
||||||
{
|
{
|
||||||
BeatAction.New(Cats[0], new List<BeatAction.Action>()
|
BeatAction.New(Cats[0], new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,6 +10,7 @@ using System.Diagnostics;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Rendering;
|
using UnityEngine.Rendering;
|
||||||
using static HeavenStudio.EntityTypes;
|
using static HeavenStudio.EntityTypes;
|
||||||
|
using Jukebox;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Loaders
|
namespace HeavenStudio.Games.Loaders
|
||||||
{
|
{
|
||||||
|
@ -101,7 +102,7 @@ namespace HeavenStudio.Games.Loaders
|
||||||
new Param("xPos", new EntityTypes.Float(-40f, 40f, 0f), "X Position", "Which position on the X axis should the Launch Pad travel to?"),
|
new Param("xPos", new EntityTypes.Float(-40f, 40f, 0f), "X Position", "Which position on the X axis should the Launch Pad travel to?"),
|
||||||
new Param("yPos", new EntityTypes.Float(-30f, 30f, 0f), "Y Position", "Which position on the Y axis should the Launch Pad travel to?"),
|
new Param("yPos", new EntityTypes.Float(-30f, 30f, 0f), "Y Position", "Which position on the Y axis should the Launch Pad travel to?"),
|
||||||
new Param("zPos", new EntityTypes.Float(-90f, 90f, 0f), "Z Position", "Which position on the Z axis should the Launch Pad travel to?"),
|
new Param("zPos", new EntityTypes.Float(-90f, 90f, 0f), "Z Position", "Which position on the Z axis should the Launch Pad travel to?"),
|
||||||
new Param("ease", EasingFunction.Ease.Linear, "Ease", "Which ease should the Launch Pad use?")
|
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Which ease should the Launch Pad use?")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new GameAction("rotMove", "Change Launch Pad Rotation")
|
new GameAction("rotMove", "Change Launch Pad Rotation")
|
||||||
|
@ -111,7 +112,7 @@ namespace HeavenStudio.Games.Loaders
|
||||||
parameters = new List<Param>()
|
parameters = new List<Param>()
|
||||||
{
|
{
|
||||||
new Param("rot", new EntityTypes.Float(-360, 360, 0), "Angle", "Which angle of rotation should the Launch Pad rotate towards?"),
|
new Param("rot", new EntityTypes.Float(-360, 360, 0), "Angle", "Which angle of rotation should the Launch Pad rotate towards?"),
|
||||||
new Param("ease", EasingFunction.Ease.Linear, "Ease", "Which ease should the Launch Pad use?")
|
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Which ease should the Launch Pad use?")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new GameAction("toggleStars", "Toggle Falling Stars")
|
new GameAction("toggleStars", "Toggle Falling Stars")
|
||||||
|
@ -174,8 +175,8 @@ namespace HeavenStudio.Games
|
||||||
private Vector3 currentPadPos = new Vector3(0, -2.4f, 0);
|
private Vector3 currentPadPos = new Vector3(0, -2.4f, 0);
|
||||||
private float lastPadRotation;
|
private float lastPadRotation;
|
||||||
private float currentPadRotation;
|
private float currentPadRotation;
|
||||||
private EasingFunction.Ease lastPosEase;
|
private Util.EasingFunction.Ease lastPosEase;
|
||||||
private EasingFunction.Ease lastRotEase;
|
private Util.EasingFunction.Ease lastRotEase;
|
||||||
public enum RocketType
|
public enum RocketType
|
||||||
{
|
{
|
||||||
Family = 0,
|
Family = 0,
|
||||||
|
@ -186,7 +187,7 @@ namespace HeavenStudio.Games
|
||||||
public struct QueuedRocket
|
public struct QueuedRocket
|
||||||
{
|
{
|
||||||
public RocketType type;
|
public RocketType type;
|
||||||
public float beat;
|
public double beat;
|
||||||
public float offSet;
|
public float offSet;
|
||||||
public List<int> notes;
|
public List<int> notes;
|
||||||
}
|
}
|
||||||
|
@ -196,9 +197,9 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
private int currentRotIndex;
|
private int currentRotIndex;
|
||||||
|
|
||||||
private List<DynamicBeatmap.DynamicEntity> allPosEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> allPosEvents = new List<RiqEntity>();
|
||||||
|
|
||||||
private List<DynamicBeatmap.DynamicEntity> allRotEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> allRotEvents = new List<RiqEntity>();
|
||||||
|
|
||||||
public static LaunchParty instance;
|
public static LaunchParty instance;
|
||||||
|
|
||||||
|
@ -216,10 +217,10 @@ namespace HeavenStudio.Games
|
||||||
instance = this;
|
instance = this;
|
||||||
lensFlareAnim.Play("Flashing", 0, 0);
|
lensFlareAnim.Play("Flashing", 0, 0);
|
||||||
var posEvents = EventCaller.GetAllInGameManagerList("launchParty", new string[] { "posMove" });
|
var posEvents = EventCaller.GetAllInGameManagerList("launchParty", new string[] { "posMove" });
|
||||||
List<DynamicBeatmap.DynamicEntity> tempPosEvents = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> tempPosEvents = new List<RiqEntity>();
|
||||||
for (int i = 0; i < posEvents.Count; i++)
|
for (int i = 0; i < posEvents.Count; i++)
|
||||||
{
|
{
|
||||||
if (posEvents[i].beat + posEvents[i].beat >= Conductor.instance.songPositionInBeats)
|
if (posEvents[i].beat + posEvents[i].beat >= Conductor.instance.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
tempPosEvents.Add(posEvents[i]);
|
tempPosEvents.Add(posEvents[i]);
|
||||||
}
|
}
|
||||||
|
@ -228,10 +229,10 @@ namespace HeavenStudio.Games
|
||||||
allPosEvents = tempPosEvents;
|
allPosEvents = tempPosEvents;
|
||||||
|
|
||||||
var rotEvents = EventCaller.GetAllInGameManagerList("launchParty", new string[] { "rotMove" });
|
var rotEvents = EventCaller.GetAllInGameManagerList("launchParty", new string[] { "rotMove" });
|
||||||
List<DynamicBeatmap.DynamicEntity> tempRotEvents = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> tempRotEvents = new List<RiqEntity>();
|
||||||
for (int i = 0; i < rotEvents.Count; i++)
|
for (int i = 0; i < rotEvents.Count; i++)
|
||||||
{
|
{
|
||||||
if (rotEvents[i].beat + rotEvents[i].beat >= Conductor.instance.songPositionInBeats)
|
if (rotEvents[i].beat + rotEvents[i].beat >= Conductor.instance.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
tempRotEvents.Add(rotEvents[i]);
|
tempRotEvents.Add(rotEvents[i]);
|
||||||
}
|
}
|
||||||
|
@ -261,7 +262,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (currentPosIndex < allPosEvents.Count && currentPosIndex >= 0)
|
if (currentPosIndex < allPosEvents.Count && currentPosIndex >= 0)
|
||||||
{
|
{
|
||||||
if (cond.songPositionInBeats >= allPosEvents[currentPosIndex].beat)
|
if (cond.songPositionInBeatsAsDouble >= allPosEvents[currentPosIndex].beat)
|
||||||
{
|
{
|
||||||
UpdateLaunchPadPos();
|
UpdateLaunchPadPos();
|
||||||
currentPosIndex++;
|
currentPosIndex++;
|
||||||
|
@ -284,7 +285,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EasingFunction.Function func = EasingFunction.GetEasingFunction(lastPosEase);
|
Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction(lastPosEase);
|
||||||
|
|
||||||
float newPosX = func(lastPadPos.x, currentPadPos.x, normalizedBeat);
|
float newPosX = func(lastPadPos.x, currentPadPos.x, normalizedBeat);
|
||||||
float newPosY = func(lastPadPos.y, currentPadPos.y, normalizedBeat);
|
float newPosY = func(lastPadPos.y, currentPadPos.y, normalizedBeat);
|
||||||
|
@ -298,7 +299,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (currentRotIndex < allRotEvents.Count && currentRotIndex >= 0)
|
if (currentRotIndex < allRotEvents.Count && currentRotIndex >= 0)
|
||||||
{
|
{
|
||||||
if (cond.songPositionInBeats >= allRotEvents[currentRotIndex].beat)
|
if (cond.songPositionInBeatsAsDouble >= allRotEvents[currentRotIndex].beat)
|
||||||
{
|
{
|
||||||
UpdateLaunchPadRot();
|
UpdateLaunchPadRot();
|
||||||
currentRotIndex++;
|
currentRotIndex++;
|
||||||
|
@ -321,7 +322,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EasingFunction.Function func = EasingFunction.GetEasingFunction(lastRotEase);
|
Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction(lastRotEase);
|
||||||
|
|
||||||
float newRotZ = func(lastPadRotation, currentPadRotation, normalizedBeat);
|
float newRotZ = func(lastPadRotation, currentPadRotation, normalizedBeat);
|
||||||
launchPadRotatable.rotation = Quaternion.Euler(0, 0, newRotZ);
|
launchPadRotatable.rotation = Quaternion.Euler(0, 0, newRotZ);
|
||||||
|
@ -341,10 +342,10 @@ namespace HeavenStudio.Games
|
||||||
if (currentPosIndex < allPosEvents.Count && currentPosIndex >= 0)
|
if (currentPosIndex < allPosEvents.Count && currentPosIndex >= 0)
|
||||||
{
|
{
|
||||||
lastPadPos = launchPad.position;
|
lastPadPos = launchPad.position;
|
||||||
currentPosBeat = allPosEvents[currentPosIndex].beat;
|
currentPosBeat = (float)allPosEvents[currentPosIndex].beat;
|
||||||
currentPosLength = allPosEvents[currentPosIndex].length;
|
currentPosLength = allPosEvents[currentPosIndex].length;
|
||||||
currentPadPos = new Vector3(allPosEvents[currentPosIndex]["xPos"], allPosEvents[currentPosIndex]["yPos"], allPosEvents[currentPosIndex]["zPos"]);
|
currentPadPos = new Vector3(allPosEvents[currentPosIndex]["xPos"], allPosEvents[currentPosIndex]["yPos"], allPosEvents[currentPosIndex]["zPos"]);
|
||||||
lastPosEase = (EasingFunction.Ease)allPosEvents[currentPosIndex]["ease"];
|
lastPosEase = (Util.EasingFunction.Ease)allPosEvents[currentPosIndex]["ease"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -353,14 +354,14 @@ namespace HeavenStudio.Games
|
||||||
if (currentRotIndex < allRotEvents.Count && currentRotIndex >= 0)
|
if (currentRotIndex < allRotEvents.Count && currentRotIndex >= 0)
|
||||||
{
|
{
|
||||||
lastPadRotation = launchPadRotatable.rotation.eulerAngles.z;
|
lastPadRotation = launchPadRotatable.rotation.eulerAngles.z;
|
||||||
currentRotBeat = allRotEvents[currentRotIndex].beat;
|
currentRotBeat = (float)allRotEvents[currentRotIndex].beat;
|
||||||
currentRotLength = allRotEvents[currentRotIndex].length;
|
currentRotLength = allRotEvents[currentRotIndex].length;
|
||||||
currentPadRotation = allRotEvents[currentRotIndex]["rot"];
|
currentPadRotation = allRotEvents[currentRotIndex]["rot"];
|
||||||
lastRotEase = (EasingFunction.Ease)allRotEvents[currentRotIndex]["ease"];
|
lastRotEase = (Util.EasingFunction.Ease)allRotEvents[currentRotIndex]["ease"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnRocket(float beat, float beatOffset, RocketType type, List<int> notes)
|
public void SpawnRocket(double beat, float beatOffset, RocketType type, List<int> notes)
|
||||||
{
|
{
|
||||||
GameObject rocketToSpawn = rocket;
|
GameObject rocketToSpawn = rocket;
|
||||||
switch (type)
|
switch (type)
|
||||||
|
@ -383,7 +384,7 @@ namespace HeavenStudio.Games
|
||||||
List<float> pitchedNotes = new List<float>();
|
List<float> pitchedNotes = new List<float>();
|
||||||
foreach (var note in notes)
|
foreach (var note in notes)
|
||||||
{
|
{
|
||||||
pitchedNotes.Add(Jukebox.GetPitchFromSemiTones(note, true));
|
pitchedNotes.Add(SoundByte.GetPitchFromSemiTones(note, true));
|
||||||
}
|
}
|
||||||
rocketScript.pitches.AddRange(pitchedNotes);
|
rocketScript.pitches.AddRange(pitchedNotes);
|
||||||
switch (type)
|
switch (type)
|
||||||
|
@ -407,7 +408,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void LaunchRocket(float beat, float beatOffset, int noteOne, int noteTwo, int noteThree, int noteFour)
|
public static void LaunchRocket(double beat, float beatOffset, int noteOne, int noteTwo, int noteThree, int noteFour)
|
||||||
{
|
{
|
||||||
List<int> pitches = new List<int>()
|
List<int> pitches = new List<int>()
|
||||||
{
|
{
|
||||||
|
@ -426,7 +427,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void LaunchPartyCracker(float beat, float beatOffset, int noteOne, int noteTwo, int noteThree, int noteFour, int noteFive, int noteSix)
|
public static void LaunchPartyCracker(double beat, float beatOffset, int noteOne, int noteTwo, int noteThree, int noteFour, int noteFive, int noteSix)
|
||||||
{
|
{
|
||||||
List<int> pitches = new List<int>()
|
List<int> pitches = new List<int>()
|
||||||
{
|
{
|
||||||
|
@ -447,7 +448,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void LaunchBell(float beat, float beatOffset, int noteOne, int noteTwo, int noteThree, int noteFour, int noteFive, int noteSix, int noteSeven, int noteEight, int noteNine)
|
public static void LaunchBell(double beat, float beatOffset, int noteOne, int noteTwo, int noteThree, int noteFour, int noteFive, int noteSix, int noteSeven, int noteEight, int noteNine)
|
||||||
{
|
{
|
||||||
List<int> pitches = new List<int>()
|
List<int> pitches = new List<int>()
|
||||||
{
|
{
|
||||||
|
@ -471,7 +472,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void LaunchBowlingPin(float beat, float beatOffset, int noteOne, int noteTwo, int noteThree, int noteFour, int noteFive, int noteSix, int noteSeven,
|
public static void LaunchBowlingPin(double beat, float beatOffset, int noteOne, int noteTwo, int noteThree, int noteFour, int noteFive, int noteSix, int noteSeven,
|
||||||
int noteEight, int noteNine, int noteTen, int noteEleven, int noteTwelve, int noteThirteen, int noteFourteen, int noteFifteen)
|
int noteEight, int noteNine, int noteTen, int noteEleven, int noteTwelve, int noteThirteen, int noteFourteen, int noteFifteen)
|
||||||
{
|
{
|
||||||
List<int> pitches = new List<int>()
|
List<int> pitches = new List<int>()
|
||||||
|
@ -502,7 +503,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CreateParticles(float beat, bool toggle, float starDensity, float starSpeed, float starSpeedBack)
|
public void CreateParticles(double beat, bool toggle, float starDensity, float starSpeed, float starSpeedBack)
|
||||||
{
|
{
|
||||||
ParticleSystem.EmissionModule emm;
|
ParticleSystem.EmissionModule emm;
|
||||||
ParticleSystem.EmissionModule emm2;
|
ParticleSystem.EmissionModule emm2;
|
||||||
|
|
|
@ -34,8 +34,8 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
if (GameManager.instance.currentGame != "launchParty") Destroy(gameObject);
|
if (GameManager.instance.currentGame != "launchParty") Destroy(gameObject);
|
||||||
if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN) && !noInput)
|
if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN) && !noInput)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("launchParty/miss");
|
SoundByte.PlayOneShotGame("launchParty/miss");
|
||||||
Jukebox.PlayOneShotGame("launchParty/rocket_endBad");
|
SoundByte.PlayOneShotGame("launchParty/rocket_endBad");
|
||||||
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
||||||
if (!anim.IsPlayingAnimationName("RocketBarelyLeft") && !anim.IsPlayingAnimationName("RocketBarelyRight")) anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
if (!anim.IsPlayingAnimationName("RocketBarelyLeft") && !anim.IsPlayingAnimationName("RocketBarelyRight")) anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
||||||
game.ScoreMiss(0.5);
|
game.ScoreMiss(0.5);
|
||||||
|
@ -48,7 +48,7 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
noInput = false;
|
noInput = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitFamilyRocket(float beat)
|
public void InitFamilyRocket(double beat)
|
||||||
{
|
{
|
||||||
game.ScheduleInput(beat, 3f, InputType.STANDARD_DOWN, JustFamilyRocket, Miss, Nothing);
|
game.ScheduleInput(beat, 3f, InputType.STANDARD_DOWN, JustFamilyRocket, Miss, Nothing);
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitPartyCracker(float beat)
|
public void InitPartyCracker(double beat)
|
||||||
{
|
{
|
||||||
game.ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JustPartyCracker, Miss, Nothing);
|
game.ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JustPartyCracker, Miss, Nothing);
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitBell(float beat)
|
public void InitBell(double beat)
|
||||||
{
|
{
|
||||||
game.ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JustBell, Miss, Nothing);
|
game.ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JustBell, Miss, Nothing);
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitBowlingPin(float beat)
|
public void InitBowlingPin(double beat)
|
||||||
{
|
{
|
||||||
game.ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JustBowlingPin, Miss, Nothing);
|
game.ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JustBowlingPin, Miss, Nothing);
|
||||||
|
|
||||||
|
@ -181,8 +181,8 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
number.SetActive(false);
|
number.SetActive(false);
|
||||||
Jukebox.PlayOneShotGame("launchParty/miss");
|
SoundByte.PlayOneShotGame("launchParty/miss");
|
||||||
Jukebox.PlayOneShotGame("launchParty/rocket_endBad");
|
SoundByte.PlayOneShotGame("launchParty/rocket_endBad");
|
||||||
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
||||||
anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
|
@ -227,8 +227,8 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
{
|
{
|
||||||
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
||||||
anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
||||||
Jukebox.PlayOneShotGame("launchParty/miss");
|
SoundByte.PlayOneShotGame("launchParty/miss");
|
||||||
Jukebox.PlayOneShotGame("launchParty/rocket_endBad");
|
SoundByte.PlayOneShotGame("launchParty/rocket_endBad");
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { GameObject.Destroy(gameObject); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { GameObject.Destroy(gameObject); }),
|
||||||
|
@ -271,8 +271,8 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
{
|
{
|
||||||
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
||||||
anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
||||||
Jukebox.PlayOneShotGame("launchParty/miss");
|
SoundByte.PlayOneShotGame("launchParty/miss");
|
||||||
Jukebox.PlayOneShotGame("launchParty/rocket_endBad");
|
SoundByte.PlayOneShotGame("launchParty/rocket_endBad");
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { GameObject.Destroy(gameObject); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { GameObject.Destroy(gameObject); }),
|
||||||
|
@ -315,8 +315,8 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
{
|
{
|
||||||
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
string leftOrRight = (UnityEngine.Random.Range(1, 3) == 1) ? "Left" : "Right";
|
||||||
anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
anim.Play("RocketBarely" + leftOrRight, 0, 0);
|
||||||
Jukebox.PlayOneShotGame("launchParty/miss");
|
SoundByte.PlayOneShotGame("launchParty/miss");
|
||||||
Jukebox.PlayOneShotGame("launchParty/rocket_endBad");
|
SoundByte.PlayOneShotGame("launchParty/rocket_endBad");
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { GameObject.Destroy(gameObject); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { GameObject.Destroy(gameObject); }),
|
||||||
|
@ -346,7 +346,7 @@ namespace HeavenStudio.Games.Scripts_LaunchParty
|
||||||
void Miss(PlayerActionEvent caller)
|
void Miss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
noInput = true;
|
noInput = true;
|
||||||
Jukebox.PlayOneShotGame("launchParty/miss");
|
SoundByte.PlayOneShotGame("launchParty/miss");
|
||||||
number.SetActive(false);
|
number.SetActive(false);
|
||||||
anim.Play("RocketMiss", 0, 0);
|
anim.Play("RocketMiss", 0, 0);
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
|
|
|
@ -155,7 +155,7 @@ namespace HeavenStudio.Games
|
||||||
[SerializeField] Material stepperMaterial;
|
[SerializeField] Material stepperMaterial;
|
||||||
|
|
||||||
[Header("Properties")]
|
[Header("Properties")]
|
||||||
static List<float> queuedInputs = new List<float>();
|
static List<double> queuedInputs = new();
|
||||||
Sprite masterSprite;
|
Sprite masterSprite;
|
||||||
HowMissed currentMissStage;
|
HowMissed currentMissStage;
|
||||||
bool lessSteppers = false;
|
bool lessSteppers = false;
|
||||||
|
@ -238,7 +238,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
foreach (var input in queuedInputs)
|
foreach (var input in queuedInputs)
|
||||||
{
|
{
|
||||||
ScheduleInput(cond.songPositionInBeats, input - cond.songPositionInBeats, InputType.STANDARD_DOWN, Just, Miss, Nothing);
|
ScheduleInput(cond.songPositionInBeatsAsDouble, input - cond.songPositionInBeats, InputType.STANDARD_DOWN, Just, Miss, Nothing);
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(input, delegate { EvaluateMarch(); }),
|
new BeatAction.Action(input, delegate { EvaluateMarch(); }),
|
||||||
|
@ -258,7 +258,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
stepswitcherPlayer.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
|
stepswitcherPlayer.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
|
||||||
}
|
}
|
||||||
Jukebox.PlayOneShotGame("lockstep/miss");
|
SoundByte.PlayOneShotGame("lockstep/miss");
|
||||||
ScoreMiss();
|
ScoreMiss();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -269,7 +269,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, float length, bool shouldBop, bool autoBop)
|
public void Bop(double beat, float length, bool shouldBop, bool autoBop)
|
||||||
{
|
{
|
||||||
goBop = autoBop;
|
goBop = autoBop;
|
||||||
if (shouldBop)
|
if (shouldBop)
|
||||||
|
@ -287,17 +287,17 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Hai(float beat)
|
public void Hai(double beat)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("lockstep/switch1");
|
SoundByte.PlayOneShotGame("lockstep/switch1", beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Ho(float beat)
|
public void Ho(double beat)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("lockstep/switch4");
|
SoundByte.PlayOneShotGame("lockstep/switch4", beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void OnbeatSwitch(float beat)
|
public static void OnbeatSwitch(double beat)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[]
|
MultiSound.Play(new MultiSound.Sound[]
|
||||||
{
|
{
|
||||||
|
@ -317,7 +317,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void OffbeatSwitch(float beat)
|
public static void OffbeatSwitch(double beat)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[]
|
MultiSound.Play(new MultiSound.Sound[]
|
||||||
{
|
{
|
||||||
|
@ -338,7 +338,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Marching(float beat, float length)
|
public static void Marching(double beat, float length)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame == "lockstep")
|
if (GameManager.instance.currentGame == "lockstep")
|
||||||
{
|
{
|
||||||
|
@ -362,7 +362,7 @@ namespace HeavenStudio.Games
|
||||||
public void EvaluateMarch()
|
public void EvaluateMarch()
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
var beatAnimCheck = Math.Round(cond.songPositionInBeats * 2);
|
var beatAnimCheck = Math.Round(cond.songPositionInBeatsAsDouble * 2);
|
||||||
if (beatAnimCheck % 2 != 0)
|
if (beatAnimCheck % 2 != 0)
|
||||||
{
|
{
|
||||||
PlayStepperAnim("OffbeatMarch", false, 0.5f);
|
PlayStepperAnim("OffbeatMarch", false, 0.5f);
|
||||||
|
@ -382,12 +382,12 @@ namespace HeavenStudio.Games
|
||||||
double beatAnimCheck = cond.songPositionInBeatsAsDouble - 0.25;
|
double beatAnimCheck = cond.songPositionInBeatsAsDouble - 0.25;
|
||||||
if (beatAnimCheck % 1.0 >= 0.5)
|
if (beatAnimCheck % 1.0 >= 0.5)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("lockstep/tink");
|
SoundByte.PlayOneShotGame("lockstep/tink");
|
||||||
stepswitcherPlayer.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
|
stepswitcherPlayer.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("lockstep/tink");
|
SoundByte.PlayOneShotGame("lockstep/tink");
|
||||||
stepswitcherPlayer.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
|
stepswitcherPlayer.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -400,12 +400,12 @@ namespace HeavenStudio.Games
|
||||||
double beatAnimCheck = beat - 0.25;
|
double beatAnimCheck = beat - 0.25;
|
||||||
if (beatAnimCheck % 1.0 >= 0.5)
|
if (beatAnimCheck % 1.0 >= 0.5)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame($"lockstep/marchOnbeat{UnityEngine.Random.Range(1, 3)}");
|
SoundByte.PlayOneShotGame($"lockstep/marchOnbeat{UnityEngine.Random.Range(1, 3)}");
|
||||||
stepswitcherPlayer.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
|
stepswitcherPlayer.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame($"lockstep/marchOffbeat{UnityEngine.Random.Range(1, 3)}");
|
SoundByte.PlayOneShotGame($"lockstep/marchOffbeat{UnityEngine.Random.Range(1, 3)}");
|
||||||
stepswitcherPlayer.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
|
stepswitcherPlayer.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -417,13 +417,13 @@ namespace HeavenStudio.Games
|
||||||
if (beatAnimCheck % 2 != 0 && currentMissStage != HowMissed.MissedOff)
|
if (beatAnimCheck % 2 != 0 && currentMissStage != HowMissed.MissedOff)
|
||||||
{
|
{
|
||||||
stepswitcherPlayer.Play("OffbeatMiss", 0, 0);
|
stepswitcherPlayer.Play("OffbeatMiss", 0, 0);
|
||||||
Jukebox.PlayOneShotGame("lockstep/wayOff");
|
SoundByte.PlayOneShotGame("lockstep/wayOff");
|
||||||
currentMissStage = HowMissed.MissedOff;
|
currentMissStage = HowMissed.MissedOff;
|
||||||
}
|
}
|
||||||
else if (beatAnimCheck % 2 == 0 && currentMissStage != HowMissed.MissedOn)
|
else if (beatAnimCheck % 2 == 0 && currentMissStage != HowMissed.MissedOn)
|
||||||
{
|
{
|
||||||
stepswitcherPlayer.Play("OnbeatMiss", 0, 0);
|
stepswitcherPlayer.Play("OnbeatMiss", 0, 0);
|
||||||
Jukebox.PlayOneShotGame("lockstep/wayOff");
|
SoundByte.PlayOneShotGame("lockstep/wayOff");
|
||||||
currentMissStage = HowMissed.MissedOn;
|
currentMissStage = HowMissed.MissedOn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,7 +174,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
public static MarchingOrders instance;
|
public static MarchingOrders instance;
|
||||||
|
|
||||||
static List<float> queuedMarches = new List<float>();
|
static List<double> queuedMarches = new();
|
||||||
|
|
||||||
[Header("Animators")]
|
[Header("Animators")]
|
||||||
[SerializeField] Animator Sarge;
|
[SerializeField] Animator Sarge;
|
||||||
|
@ -198,9 +198,9 @@ namespace HeavenStudio.Games
|
||||||
bool keepMarching;
|
bool keepMarching;
|
||||||
private int marchOtherCount;
|
private int marchOtherCount;
|
||||||
private int marchPlayerCount;
|
private int marchPlayerCount;
|
||||||
private float lastMissBeat;
|
private double lastMissBeat;
|
||||||
private float lastReportedBeat;
|
private double lastReportedBeat;
|
||||||
public static float wantMarch = float.MinValue;
|
public static double wantMarch = double.MinValue;
|
||||||
|
|
||||||
|
|
||||||
public enum Direction
|
public enum Direction
|
||||||
|
@ -233,12 +233,12 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
for (int i = 0; i < BackgroundRecolorable.Length; i++) BackgroundRecolorable[i].color = i == 0 ? BGColor1 : BGColor2;
|
for (int i = 0; i < BackgroundRecolorable.Length; i++) BackgroundRecolorable[i].color = i == 0 ? BGColor1 : BGColor2;
|
||||||
|
|
||||||
if (wantMarch != float.MinValue) {
|
if (wantMarch != double.MinValue) {
|
||||||
queuedMarches.Add(wantMarch);
|
queuedMarches.Add(wantMarch);
|
||||||
marchOtherCount =
|
marchOtherCount =
|
||||||
marchPlayerCount = 0;
|
marchPlayerCount = 0;
|
||||||
keepMarching = true;
|
keepMarching = true;
|
||||||
wantMarch = float.MinValue;
|
wantMarch = double.MinValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (goBop && Conductor.instance.ReportBeat(ref lastReportedBeat)) {
|
if (goBop && Conductor.instance.ReportBeat(ref lastReportedBeat)) {
|
||||||
|
@ -256,7 +256,7 @@ namespace HeavenStudio.Games
|
||||||
new BeatAction.Action(march + 1, delegate {
|
new BeatAction.Action(march + 1, delegate {
|
||||||
marchOtherCount++;
|
marchOtherCount++;
|
||||||
foreach (var cadet in Cadets) cadet.DoScaledAnimationAsync(marchOtherCount % 2 != 0 ? "MarchR" : "MarchL", 0.5f);
|
foreach (var cadet in Cadets) cadet.DoScaledAnimationAsync(marchOtherCount % 2 != 0 ? "MarchR" : "MarchL", 0.5f);
|
||||||
Jukebox.PlayOneShotGame("marchingOrders/stepOther");
|
SoundByte.PlayOneShotGame("marchingOrders/stepOther");
|
||||||
if (keepMarching) queuedMarches.Add(march + 1);
|
if (keepMarching) queuedMarches.Add(march + 1);
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
@ -317,8 +317,8 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
void TurnSuccess(float state, string dir, bool shouldPoint = false)
|
void TurnSuccess(float state, string dir, bool shouldPoint = false)
|
||||||
{
|
{
|
||||||
if (state <= -1f || state >= 1f) Jukebox.PlayOneShot("nearMiss");
|
if (state <= -1f || state >= 1f) SoundByte.PlayOneShot("nearMiss");
|
||||||
else Jukebox.PlayOneShotGame("marchingOrders/turnActionPlayer");
|
else SoundByte.PlayOneShotGame("marchingOrders/turnActionPlayer");
|
||||||
|
|
||||||
CadetHeadPlayer.DoScaledAnimationAsync("Face"+dir, 0.5f);
|
CadetHeadPlayer.DoScaledAnimationAsync("Face"+dir, 0.5f);
|
||||||
if (shouldPoint) CadetPlayer.DoScaledAnimationAsync("Point"+dir, 0.5f);
|
if (shouldPoint) CadetPlayer.DoScaledAnimationAsync("Point"+dir, 0.5f);
|
||||||
|
@ -326,35 +326,35 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void GenericMiss(PlayerActionEvent caller)
|
public void GenericMiss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
if (Conductor.instance.songPositionInBeats - lastMissBeat <= 1.1f) return;
|
if (Conductor.instance.songPositionInBeatsAsDouble - lastMissBeat <= 1.1f) return;
|
||||||
Miss();
|
Miss();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Miss()
|
public void Miss()
|
||||||
{
|
{
|
||||||
lastMissBeat = Conductor.instance.songPositionInBeats;
|
lastMissBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
Sarge.DoScaledAnimationAsync("Anger", 0.5f);
|
Sarge.DoScaledAnimationAsync("Anger", 0.5f);
|
||||||
Steam.DoScaledAnimationAsync("Steam", 0.5f);
|
Steam.DoScaledAnimationAsync("Steam", 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MarchHit(PlayerActionEvent caller, float state)
|
public void MarchHit(PlayerActionEvent caller, float state)
|
||||||
{
|
{
|
||||||
if (state <= -1f || state >= 1f) Jukebox.PlayOneShot("nearMiss");
|
if (state <= -1f || state >= 1f) SoundByte.PlayOneShot("nearMiss");
|
||||||
else Jukebox.PlayOneShotGame("marchingOrders/stepPlayer", volume: 0.25f);
|
else SoundByte.PlayOneShotGame("marchingOrders/stepPlayer", volume: 0.25f);
|
||||||
marchPlayerCount++;
|
marchPlayerCount++;
|
||||||
CadetPlayer.DoScaledAnimationAsync(marchPlayerCount % 2 != 0 ? "MarchR" : "MarchL", 0.5f);
|
CadetPlayer.DoScaledAnimationAsync(marchPlayerCount % 2 != 0 ? "MarchR" : "MarchL", 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HaltHit(PlayerActionEvent caller, float state)
|
public void HaltHit(PlayerActionEvent caller, float state)
|
||||||
{
|
{
|
||||||
if (state <= -1f || state >= 1f) Jukebox.PlayOneShot("nearMiss");
|
if (state <= -1f || state >= 1f) SoundByte.PlayOneShot("nearMiss");
|
||||||
else Jukebox.PlayOneShotGame("marchingOrders/stepPlayer", volume: 0.25f);
|
else SoundByte.PlayOneShotGame("marchingOrders/stepPlayer", volume: 0.25f);
|
||||||
|
|
||||||
CadetPlayer.DoScaledAnimationAsync("Halt", 0.5f);
|
CadetPlayer.DoScaledAnimationAsync("Halt", 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BopAction(float beat, float length, bool shouldBop, bool autoBop, bool clap)
|
public void BopAction(double beat, float length, bool shouldBop, bool autoBop, bool clap)
|
||||||
{
|
{
|
||||||
goBop = autoBop;
|
goBop = autoBop;
|
||||||
shouldClap = clap;
|
shouldClap = clap;
|
||||||
|
@ -370,16 +370,16 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SargeAttention(float beat)
|
public void SargeAttention(double beat)
|
||||||
{
|
{
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
||||||
new BeatAction.Action(beat + 0.25f, delegate { Sarge.DoScaledAnimationAsync("Talk", 0.5f);}),
|
new BeatAction.Action(beat + 0.25f, delegate { Sarge.DoScaledAnimationAsync("Talk", 0.5f);}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SargeMarch(float beat, bool noVoice)
|
public static void SargeMarch(double beat, bool noVoice)
|
||||||
{
|
{
|
||||||
if (MarchingOrders.wantMarch != float.MinValue) return;
|
if (MarchingOrders.wantMarch != double.MinValue) return;
|
||||||
MarchingOrders.wantMarch = beat + 1;
|
MarchingOrders.wantMarch = beat + 1;
|
||||||
|
|
||||||
if (!noVoice) PlaySoundSequence("marchingOrders", "susume", beat);
|
if (!noVoice) PlaySoundSequence("marchingOrders", "susume", beat);
|
||||||
|
@ -390,7 +390,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ForceMarching(float beat, float length)
|
public void ForceMarching(double beat, float length)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < length; i++) {
|
for (int i = 0; i < length; i++) {
|
||||||
ScheduleInput(beat + i - 1, 1f, InputType.STANDARD_DOWN, MarchHit, GenericMiss, Empty);
|
ScheduleInput(beat + i - 1, 1f, InputType.STANDARD_DOWN, MarchHit, GenericMiss, Empty);
|
||||||
|
@ -398,13 +398,13 @@ namespace HeavenStudio.Games
|
||||||
new BeatAction.Action(beat + i, delegate {
|
new BeatAction.Action(beat + i, delegate {
|
||||||
marchOtherCount++;
|
marchOtherCount++;
|
||||||
foreach (var cadet in Cadets) cadet.DoScaledAnimationAsync(marchOtherCount % 2 != 0 ? "MarchR" : "MarchL", 0.5f);
|
foreach (var cadet in Cadets) cadet.DoScaledAnimationAsync(marchOtherCount % 2 != 0 ? "MarchR" : "MarchL", 0.5f);
|
||||||
Jukebox.PlayOneShotGame("marchingOrders/stepOther");
|
SoundByte.PlayOneShotGame("marchingOrders/stepOther");
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PreMarch(float beat)
|
public void PreMarch(double beat)
|
||||||
{
|
{
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
@ -415,7 +415,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Halt(float beat)
|
public void Halt(double beat)
|
||||||
{
|
{
|
||||||
keepMarching = false;
|
keepMarching = false;
|
||||||
HaltSound(beat);
|
HaltSound(beat);
|
||||||
|
@ -428,7 +428,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FaceTurn(float beat, int direction, bool isFast, bool shouldPoint)
|
public void FaceTurn(double beat, int direction, bool isFast, bool shouldPoint)
|
||||||
{
|
{
|
||||||
// x is true if the direction is right
|
// x is true if the direction is right
|
||||||
bool x = (direction == 0);
|
bool x = (direction == 0);
|
||||||
|
@ -491,12 +491,12 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AttentionSound(float beat)
|
public static void AttentionSound(double beat)
|
||||||
{
|
{
|
||||||
PlaySoundSequence("marchingOrders", "zentai", beat - 1);
|
PlaySoundSequence("marchingOrders", "zentai", beat - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HaltSound(float beat)
|
public static void HaltSound(double beat)
|
||||||
{
|
{
|
||||||
PlaySoundSequence("marchingOrders", "tomare", beat);
|
PlaySoundSequence("marchingOrders", "tomare", beat);
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,11 +74,11 @@ namespace HeavenStudio.Games
|
||||||
using Scripts_MeatGrinder;
|
using Scripts_MeatGrinder;
|
||||||
public class MeatGrinder : Minigame
|
public class MeatGrinder : Minigame
|
||||||
{
|
{
|
||||||
static List<float> queuedInputs = new List<float>();
|
static List<double> queuedInputs = new();
|
||||||
static List<QueuedInterval> queuedIntervals = new List<QueuedInterval>();
|
static List<QueuedInterval> queuedIntervals = new List<QueuedInterval>();
|
||||||
struct QueuedInterval
|
struct QueuedInterval
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public float length;
|
public float length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,11 +91,11 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
[Header("Variables")]
|
[Header("Variables")]
|
||||||
bool intervalStarted;
|
bool intervalStarted;
|
||||||
float intervalStartBeat;
|
double intervalStartBeat;
|
||||||
bool bossBop = true;
|
bool bossBop = true;
|
||||||
public float beatInterval = 4f;
|
public float beatInterval = 4f;
|
||||||
public bool bossAnnoyed = false;
|
public bool bossAnnoyed = false;
|
||||||
private float lastReportedBeat = 0f;
|
private double lastReportedBeat = 0f;
|
||||||
const string sfxName = "meatGrinder/";
|
const string sfxName = "meatGrinder/";
|
||||||
|
|
||||||
public static MeatGrinder instance;
|
public static MeatGrinder instance;
|
||||||
|
@ -130,7 +130,7 @@ namespace HeavenStudio.Games
|
||||||
if (PlayerInput.Pressed(true) && (!IsExpectingInputNow(InputType.STANDARD_DOWN) || !IsExpectingInputNow(InputType.DIRECTION_DOWN))) {
|
if (PlayerInput.Pressed(true) && (!IsExpectingInputNow(InputType.STANDARD_DOWN) || !IsExpectingInputNow(InputType.DIRECTION_DOWN))) {
|
||||||
TackAnim.DoScaledAnimationAsync("TackEmptyHit", 0.5f);
|
TackAnim.DoScaledAnimationAsync("TackEmptyHit", 0.5f);
|
||||||
TackAnim.SetBool("tackMeated", false);
|
TackAnim.SetBool("tackMeated", false);
|
||||||
Jukebox.PlayOneShotGame(sfxName+"whiff");
|
SoundByte.PlayOneShotGame(sfxName+"whiff");
|
||||||
if (bossAnnoyed) BossAnim.DoScaledAnimationAsync("Bop", 0.5f);
|
if (bossAnnoyed) BossAnim.DoScaledAnimationAsync("Bop", 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, float length, bool doesBop, bool autoBop)
|
public void Bop(double beat, float length, bool doesBop, bool autoBop)
|
||||||
{
|
{
|
||||||
bossBop = autoBop;
|
bossBop = autoBop;
|
||||||
if (doesBop) {
|
if (doesBop) {
|
||||||
|
@ -169,7 +169,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PreInterval(float beat, float length)
|
public static void PreInterval(double beat, float length)
|
||||||
{
|
{
|
||||||
if (MeatGrinder.instance.intervalStarted || MeatGrinder.queuedIntervals.Count > 0) return;
|
if (MeatGrinder.instance.intervalStarted || MeatGrinder.queuedIntervals.Count > 0) return;
|
||||||
|
|
||||||
|
@ -191,7 +191,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartInterval(float beat, float length)
|
public void StartInterval(double beat, float length)
|
||||||
{
|
{
|
||||||
if (MeatGrinder.instance.intervalStarted) return;
|
if (MeatGrinder.instance.intervalStarted) return;
|
||||||
|
|
||||||
|
@ -204,9 +204,9 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MeatToss(float beat)
|
public void MeatToss(double beat)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame(sfxName+"toss");
|
SoundByte.PlayOneShotGame(sfxName+"toss");
|
||||||
|
|
||||||
MeatToss Meat = Instantiate(MeatBase, gameObject.transform).GetComponent<MeatToss>();
|
MeatToss Meat = Instantiate(MeatBase, gameObject.transform).GetComponent<MeatToss>();
|
||||||
Meat.startBeat = beat;
|
Meat.startBeat = beat;
|
||||||
|
@ -215,17 +215,17 @@ namespace HeavenStudio.Games
|
||||||
Meat.meatType = "DarkMeat";
|
Meat.meatType = "DarkMeat";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MeatCall(float beat)
|
public void MeatCall(double beat)
|
||||||
{
|
{
|
||||||
BossAnim.DoScaledAnimationAsync("BossCall", 0.5f);
|
BossAnim.DoScaledAnimationAsync("BossCall", 0.5f);
|
||||||
Jukebox.PlayOneShotGame(sfxName+"signal");
|
SoundByte.PlayOneShotGame(sfxName+"signal");
|
||||||
|
|
||||||
StartInterval(beat, beatInterval);
|
StartInterval(beat, beatInterval);
|
||||||
|
|
||||||
queuedInputs.Add(beat - intervalStartBeat);
|
queuedInputs.Add(beat - intervalStartBeat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PassTurn(float beat)
|
public void PassTurn(double beat)
|
||||||
{
|
{
|
||||||
intervalStarted = false;
|
intervalStarted = false;
|
||||||
foreach (var input in queuedInputs)
|
foreach (var input in queuedInputs)
|
||||||
|
|
|
@ -9,8 +9,8 @@ namespace HeavenStudio.Games.Scripts_MeatGrinder
|
||||||
{
|
{
|
||||||
public class MeatToss : MonoBehaviour
|
public class MeatToss : MonoBehaviour
|
||||||
{
|
{
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
public float cueLength;
|
public double cueLength;
|
||||||
public bool cueBased;
|
public bool cueBased;
|
||||||
public string meatType;
|
public string meatType;
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ namespace HeavenStudio.Games.Scripts_MeatGrinder
|
||||||
private void InputActions(bool annoyBoss, string whichSfx, string whichAnim)
|
private void InputActions(bool annoyBoss, string whichSfx, string whichAnim)
|
||||||
{
|
{
|
||||||
game.bossAnnoyed = annoyBoss;
|
game.bossAnnoyed = annoyBoss;
|
||||||
Jukebox.PlayOneShotGame("meatGrinder/"+whichSfx);
|
SoundByte.PlayOneShotGame("meatGrinder/"+whichSfx);
|
||||||
game.TackAnim.DoScaledAnimationAsync(whichAnim, 0.5f);
|
game.TackAnim.DoScaledAnimationAsync(whichAnim, 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,8 @@ namespace HeavenStudio.Games
|
||||||
/// <param name="OnBlank">Method to run whenever there's an Input while this is Scheduled (Shouldn't be used too much)</param>
|
/// <param name="OnBlank">Method to run whenever there's an Input while this is Scheduled (Shouldn't be used too much)</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public PlayerActionEvent ScheduleInput(
|
public PlayerActionEvent ScheduleInput(
|
||||||
float startBeat,
|
double startBeat,
|
||||||
float timer,
|
double timer,
|
||||||
InputType inputType,
|
InputType inputType,
|
||||||
PlayerActionEvent.ActionEventCallbackState OnHit,
|
PlayerActionEvent.ActionEventCallbackState OnHit,
|
||||||
PlayerActionEvent.ActionEventCallback OnMiss,
|
PlayerActionEvent.ActionEventCallback OnMiss,
|
||||||
|
@ -74,8 +74,8 @@ namespace HeavenStudio.Games
|
||||||
return evt;
|
return evt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerActionEvent ScheduleAutoplayInput(float startBeat,
|
public PlayerActionEvent ScheduleAutoplayInput(double startBeat,
|
||||||
float timer,
|
double timer,
|
||||||
InputType inputType,
|
InputType inputType,
|
||||||
PlayerActionEvent.ActionEventCallbackState OnHit,
|
PlayerActionEvent.ActionEventCallbackState OnHit,
|
||||||
PlayerActionEvent.ActionEventCallback OnMiss,
|
PlayerActionEvent.ActionEventCallback OnMiss,
|
||||||
|
@ -86,8 +86,8 @@ namespace HeavenStudio.Games
|
||||||
return evt;
|
return evt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerActionEvent ScheduleUserInput(float startBeat,
|
public PlayerActionEvent ScheduleUserInput(double startBeat,
|
||||||
float timer,
|
double timer,
|
||||||
InputType inputType,
|
InputType inputType,
|
||||||
PlayerActionEvent.ActionEventCallbackState OnHit,
|
PlayerActionEvent.ActionEventCallbackState OnHit,
|
||||||
PlayerActionEvent.ActionEventCallback OnMiss,
|
PlayerActionEvent.ActionEventCallback OnMiss,
|
||||||
|
@ -124,8 +124,8 @@ namespace HeavenStudio.Games
|
||||||
closest = toCompare;
|
closest = toCompare;
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
float t1 = closest.startBeat + closest.timer;
|
double t1 = closest.startBeat + closest.timer;
|
||||||
float t2 = toCompare.startBeat + toCompare.timer;
|
double t2 = toCompare.startBeat + toCompare.timer;
|
||||||
|
|
||||||
// Debug.Log("t1=" + t1 + " -- t2=" + t2);
|
// Debug.Log("t1=" + t1 + " -- t2=" + t2);
|
||||||
|
|
||||||
|
@ -194,12 +194,12 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public int firstEnable = 0;
|
public int firstEnable = 0;
|
||||||
|
|
||||||
public virtual void OnGameSwitch(float beat)
|
public virtual void OnGameSwitch(double beat)
|
||||||
{
|
{
|
||||||
//Below is a template that can be used for handling previous entities.
|
//Below is a template that can be used for handling previous entities.
|
||||||
//section below is if you only want to look at entities that overlap the game switch
|
//section below is if you only want to look at entities that overlap the game switch
|
||||||
/*
|
/*
|
||||||
List<Beatmap.Entity> prevEntities = GameManager.instance.Beatmap.entities.FindAll(c => c.beat <= beat && c.datamodel.Split(0) == [insert game name]);
|
List<Beatmap.Entity> prevEntities = GameManager.instance.Beatmap.Entities.FindAll(c => c.beat <= beat && c.datamodel.Split(0) == [insert game name]);
|
||||||
foreach(Beatmap.Entity entity in prevEntities)
|
foreach(Beatmap.Entity entity in prevEntities)
|
||||||
{
|
{
|
||||||
if(entity.beat + entity.length >= beat)
|
if(entity.beat + entity.length >= beat)
|
||||||
|
@ -215,12 +215,12 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void OnPlay(float beat)
|
public virtual void OnPlay(double beat)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void OnStop(float beat)
|
public virtual void OnStop(double beat)
|
||||||
{
|
{
|
||||||
foreach (var evt in scheduledInputs)
|
foreach (var evt in scheduledInputs)
|
||||||
{
|
{
|
||||||
|
@ -246,7 +246,7 @@ namespace HeavenStudio.Games
|
||||||
return sameTime;
|
return sameTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MultiSound PlaySoundSequence(string game, string name, float startBeat, params SoundSequence.SequenceParams[] args)
|
public static MultiSound PlaySoundSequence(string game, string name, double startBeat, params SoundSequence.SequenceParams[] args)
|
||||||
{
|
{
|
||||||
Minigames.Minigame gameInfo = GameManager.instance.GetGameInfo(game);
|
Minigames.Minigame gameInfo = GameManager.instance.GetGameInfo(game);
|
||||||
foreach (SoundSequence.SequenceKeyValue pair in gameInfo.LoadedSoundSequences)
|
foreach (SoundSequence.SequenceKeyValue pair in gameInfo.LoadedSoundSequences)
|
||||||
|
|
|
@ -125,7 +125,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public class MrUpbeat : Minigame
|
public class MrUpbeat : Minigame
|
||||||
{
|
{
|
||||||
static List<float> queuedInputs = new List<float>();
|
static List<double> queuedInputs = new();
|
||||||
|
|
||||||
[Header("References")]
|
[Header("References")]
|
||||||
[SerializeField] Animator metronomeAnim;
|
[SerializeField] Animator metronomeAnim;
|
||||||
|
@ -180,7 +180,7 @@ namespace HeavenStudio.Games
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
||||||
new BeatAction.Action(input, delegate {
|
new BeatAction.Action(input, delegate {
|
||||||
instance.metronomeAnim.DoScaledAnimationAsync("MetronomeGo" + dir, 0.5f);
|
instance.metronomeAnim.DoScaledAnimationAsync("MetronomeGo" + dir, 0.5f);
|
||||||
Jukebox.PlayOneShotGame("mrUpbeat/metronome" + dir);
|
SoundByte.PlayOneShotGame("mrUpbeat/metronome" + dir);
|
||||||
ScheduleInput(input, 0.5f, InputType.STANDARD_DOWN, Success, Miss, Nothing);
|
ScheduleInput(input, 0.5f, InputType.STANDARD_DOWN, Success, Miss, Nothing);
|
||||||
if (MrUpbeat.shouldntStop) queuedInputs.Add(input + 1);
|
if (MrUpbeat.shouldntStop) queuedInputs.Add(input + 1);
|
||||||
}),
|
}),
|
||||||
|
@ -196,20 +196,20 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Ding(float beat, bool applause, bool stopBlipping)
|
public static void Ding(double beat, bool applause, bool stopBlipping)
|
||||||
{
|
{
|
||||||
MrUpbeat.shouldntStop = false;
|
MrUpbeat.shouldntStop = false;
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
||||||
new BeatAction.Action(beat, delegate {
|
new BeatAction.Action(beat, delegate {
|
||||||
MrUpbeat.isStepping = false;
|
MrUpbeat.isStepping = false;
|
||||||
Jukebox.PlayOneShotGame("mrUpbeat/ding");
|
SoundByte.PlayOneShotGame("mrUpbeat/ding");
|
||||||
if (applause) Jukebox.PlayOneShot("applause");
|
if (applause) SoundByte.PlayOneShot("applause");
|
||||||
if (stopBlipping) MrUpbeat.shouldBlip = false;
|
if (stopBlipping) MrUpbeat.shouldBlip = false;
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void StartStepping(float beat, float length)
|
public static void StartStepping(double beat, float length)
|
||||||
{
|
{
|
||||||
if (MrUpbeat.isStepping) return;
|
if (MrUpbeat.isStepping) return;
|
||||||
MrUpbeat.isStepping = true;
|
MrUpbeat.isStepping = true;
|
||||||
|
@ -218,17 +218,17 @@ namespace HeavenStudio.Games
|
||||||
MrUpbeat.shouldBlip = true;
|
MrUpbeat.shouldBlip = true;
|
||||||
} else {
|
} else {
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
||||||
new BeatAction.Action(MathF.Floor(beat), delegate {
|
new BeatAction.Action(Math.Floor(beat), delegate {
|
||||||
MrUpbeat.shouldBlip = true;
|
MrUpbeat.shouldBlip = true;
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
MrUpbeat.shouldntStop = true;
|
MrUpbeat.shouldntStop = true;
|
||||||
queuedInputs.Add(MathF.Floor(beat+length));
|
queuedInputs.Add(Math.Floor(beat+length));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Blipping(float beat, float length)
|
public static void Blipping(double beat, float length)
|
||||||
{
|
{
|
||||||
List<MultiSound.Sound> blips = new List<MultiSound.Sound>();
|
List<MultiSound.Sound> blips = new List<MultiSound.Sound>();
|
||||||
var switchGames = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame" });
|
var switchGames = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame" });
|
||||||
|
@ -242,8 +242,8 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < switchGames[whichSwitch].beat - MathF.Floor(beat) - 0.5f; i++) {
|
for (int i = 0; i < switchGames[whichSwitch].beat - Math.Floor(beat) - 0.5f; i++) {
|
||||||
blips.Add(new MultiSound.Sound("mrUpbeat/blip", MathF.Floor(beat) + 0.5f + i));
|
blips.Add(new MultiSound.Sound("mrUpbeat/blip", Math.Floor(beat) + 0.5f + i));
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiSound.Play(blips.ToArray(), forcePlay: true);
|
MultiSound.Play(blips.ToArray(), forcePlay: true);
|
||||||
|
|
|
@ -25,17 +25,17 @@ namespace HeavenStudio.Games.Scripts_MrUpbeat
|
||||||
|
|
||||||
public void Blip()
|
public void Blip()
|
||||||
{
|
{
|
||||||
float c = Conductor.instance.songPositionInBeats;
|
double c = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
||||||
new BeatAction.Action(MathF.Floor(c) + 0.5f, delegate {
|
new BeatAction.Action(Math.Floor(c) + 0.5f, delegate {
|
||||||
if (MrUpbeat.shouldBlip) {
|
if (MrUpbeat.shouldBlip) {
|
||||||
Jukebox.PlayOneShotGame("mrUpbeat/blip");
|
SoundByte.PlayOneShotGame("mrUpbeat/blip");
|
||||||
blipAnim.Play("Blip"+(blipSize+1), 0, 0);
|
blipAnim.Play("Blip"+(blipSize+1), 0, 0);
|
||||||
blipText.text = (blipSize == 4 && blipString != "") ? blipString : "";
|
blipText.text = (blipSize == 4 && blipString != "") ? blipString : "";
|
||||||
if (shouldGrow && blipSize < 4) blipSize++;
|
if (shouldGrow && blipSize < 4) blipSize++;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
new BeatAction.Action(MathF.Floor(c) + 1f, delegate {
|
new BeatAction.Action(Math.Floor(c) + 1f, delegate {
|
||||||
Blip();
|
Blip();
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
@ -52,7 +52,7 @@ namespace HeavenStudio.Games.Scripts_MrUpbeat
|
||||||
|
|
||||||
anim.DoScaledAnimationAsync("Step", 0.5f);
|
anim.DoScaledAnimationAsync("Step", 0.5f);
|
||||||
letterAnim.DoScaledAnimationAsync(x ? "StepRight" : "StepLeft", 0.5f);
|
letterAnim.DoScaledAnimationAsync(x ? "StepRight" : "StepLeft", 0.5f);
|
||||||
Jukebox.PlayOneShotGame("mrUpbeat/step");
|
SoundByte.PlayOneShotGame("mrUpbeat/step");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Fall()
|
public void Fall()
|
||||||
|
@ -62,7 +62,7 @@ namespace HeavenStudio.Games.Scripts_MrUpbeat
|
||||||
blipText.text = "";
|
blipText.text = "";
|
||||||
|
|
||||||
anim.DoScaledAnimationAsync("Fall", 0.5f);
|
anim.DoScaledAnimationAsync("Fall", 0.5f);
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
shadows[0].SetActive(false);
|
shadows[0].SetActive(false);
|
||||||
shadows[1].SetActive(false);
|
shadows[1].SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace HeavenStudio.Games.Scripts_MunchyMonk
|
||||||
public class Dumpling : MonoBehaviour
|
public class Dumpling : MonoBehaviour
|
||||||
{
|
{
|
||||||
public Color dumplingColor;
|
public Color dumplingColor;
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
|
|
||||||
const string sfxName = "munchyMonk/";
|
const string sfxName = "munchyMonk/";
|
||||||
public bool canDestroy;
|
public bool canDestroy;
|
||||||
|
@ -47,14 +47,14 @@ namespace HeavenStudio.Games.Scripts_MunchyMonk
|
||||||
{
|
{
|
||||||
smearSr.color = dumplingColor;
|
smearSr.color = dumplingColor;
|
||||||
game.MonkArmsAnim.DoScaledAnimationAsync("WristSlap", 0.5f);
|
game.MonkArmsAnim.DoScaledAnimationAsync("WristSlap", 0.5f);
|
||||||
Jukebox.PlayOneShotGame(sfxName+"slap");
|
SoundByte.PlayOneShotGame(sfxName+"slap");
|
||||||
game.isStaring = false;
|
game.isStaring = false;
|
||||||
|
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
game.MonkAnim.DoScaledAnimationAsync("Barely", 0.5f);
|
game.MonkAnim.DoScaledAnimationAsync("Barely", 0.5f);
|
||||||
anim.DoScaledAnimationAsync("HitHead", 0.5f);
|
anim.DoScaledAnimationAsync("HitHead", 0.5f);
|
||||||
Jukebox.PlayOneShotGame(sfxName+"barely");
|
SoundByte.PlayOneShotGame(sfxName+"barely");
|
||||||
canDestroy = true;
|
canDestroy = true;
|
||||||
game.needBlush = false;
|
game.needBlush = false;
|
||||||
} else {
|
} else {
|
||||||
|
@ -62,7 +62,7 @@ namespace HeavenStudio.Games.Scripts_MunchyMonk
|
||||||
game.dumplings[0].anim.DoScaledAnimationAsync("FollowHand", 0.5f);
|
game.dumplings[0].anim.DoScaledAnimationAsync("FollowHand", 0.5f);
|
||||||
smearAnim.Play("SmearAppear", 0, 0);
|
smearAnim.Play("SmearAppear", 0, 0);
|
||||||
game.needBlush = true;
|
game.needBlush = true;
|
||||||
Jukebox.PlayOneShotGame(sfxName+"gulp");
|
SoundByte.PlayOneShotGame(sfxName+"gulp");
|
||||||
MunchyMonk.howManyGulps++;
|
MunchyMonk.howManyGulps++;
|
||||||
for (int i = 1; i <= 4; i++)
|
for (int i = 1; i <= 4; i++)
|
||||||
{
|
{
|
||||||
|
@ -89,8 +89,8 @@ namespace HeavenStudio.Games.Scripts_MunchyMonk
|
||||||
smearAnim.Play("SmearAppear", 0, 0);
|
smearAnim.Play("SmearAppear", 0, 0);
|
||||||
anim.DoScaledAnimationAsync("HitHead", 0.5f);
|
anim.DoScaledAnimationAsync("HitHead", 0.5f);
|
||||||
MultiSound.Play(new MultiSound.Sound[] {
|
MultiSound.Play(new MultiSound.Sound[] {
|
||||||
new MultiSound.Sound(sfxName+"slap", Conductor.instance.songPositionInBeats),
|
new MultiSound.Sound(sfxName+"slap", Conductor.instance.songPositionInBeatsAsDouble),
|
||||||
new MultiSound.Sound(sfxName+"miss", Conductor.instance.songPositionInBeats),
|
new MultiSound.Sound(sfxName+"miss", Conductor.instance.songPositionInBeatsAsDouble),
|
||||||
});
|
});
|
||||||
canDestroy = true;
|
canDestroy = true;
|
||||||
game.needBlush = false;
|
game.needBlush = false;
|
||||||
|
|
|
@ -153,7 +153,7 @@ namespace HeavenStudio.Games
|
||||||
static List<QueuedDumpling> queuedThrees = new List<QueuedDumpling>();
|
static List<QueuedDumpling> queuedThrees = new List<QueuedDumpling>();
|
||||||
struct QueuedDumpling
|
struct QueuedDumpling
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public Color color1;
|
public Color color1;
|
||||||
public Color color2;
|
public Color color2;
|
||||||
public Color color3;
|
public Color color3;
|
||||||
|
@ -189,7 +189,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
[Header("Variables")]
|
[Header("Variables")]
|
||||||
[SerializeField] Sprite[] dumplingSprites;
|
[SerializeField] Sprite[] dumplingSprites;
|
||||||
public float lastReportedBeat = 0f;
|
public double lastReportedBeat = 0f;
|
||||||
public bool needBlush;
|
public bool needBlush;
|
||||||
public bool isStaring;
|
public bool isStaring;
|
||||||
bool monkBop = true;
|
bool monkBop = true;
|
||||||
|
@ -203,7 +203,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
// the variables for scroll
|
// the variables for scroll
|
||||||
bool scrollRampUp;
|
bool scrollRampUp;
|
||||||
float scrollBeat;
|
double scrollBeat;
|
||||||
float scrollLength;
|
float scrollLength;
|
||||||
float scrollMod;
|
float scrollMod;
|
||||||
static float scrollModCurrent = 0;
|
static float scrollModCurrent = 0;
|
||||||
|
@ -211,7 +211,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
// the variables for the monk moving
|
// the variables for the monk moving
|
||||||
bool isMoving;
|
bool isMoving;
|
||||||
float movingStartBeat;
|
double movingStartBeat;
|
||||||
float movingLength;
|
float movingLength;
|
||||||
string moveAnim;
|
string moveAnim;
|
||||||
EasingFunction.Ease lastEase;
|
EasingFunction.Ease lastEase;
|
||||||
|
@ -256,7 +256,7 @@ namespace HeavenStudio.Games
|
||||||
// input stuff
|
// input stuff
|
||||||
if (PlayerInput.Pressed(true) && (!IsExpectingInputNow(InputType.STANDARD_DOWN) || !IsExpectingInputNow(InputType.DIRECTION_DOWN))) {
|
if (PlayerInput.Pressed(true) && (!IsExpectingInputNow(InputType.STANDARD_DOWN) || !IsExpectingInputNow(InputType.DIRECTION_DOWN))) {
|
||||||
MonkArmsAnim.DoScaledAnimationAsync("WristSlap", 0.5f);
|
MonkArmsAnim.DoScaledAnimationAsync("WristSlap", 0.5f);
|
||||||
Jukebox.PlayOneShotGame(sfxName+"slap");
|
SoundByte.PlayOneShotGame(sfxName+"slap");
|
||||||
isStaring = false;
|
isStaring = false;
|
||||||
// early input stuff
|
// early input stuff
|
||||||
if (dumplings.Count != 0) InputFunctions(3);
|
if (dumplings.Count != 0) InputFunctions(3);
|
||||||
|
@ -338,7 +338,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, bool bop, bool autoBop)
|
public void Bop(double beat, bool bop, bool autoBop)
|
||||||
{
|
{
|
||||||
monkBop = autoBop;
|
monkBop = autoBop;
|
||||||
if (bop) {
|
if (bop) {
|
||||||
|
@ -378,7 +378,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void Early(PlayerActionEvent caller) { }
|
public void Early(PlayerActionEvent caller) { }
|
||||||
|
|
||||||
public static void PreOneGoCue(float beat, Color firstColor)
|
public static void PreOneGoCue(double beat, Color firstColor)
|
||||||
{
|
{
|
||||||
PlaySoundSequence("munchyMonk", "one_go", beat);
|
PlaySoundSequence("munchyMonk", "one_go", beat);
|
||||||
|
|
||||||
|
@ -386,7 +386,7 @@ namespace HeavenStudio.Games
|
||||||
{ beat = beat, color1 = firstColor, });
|
{ beat = beat, color1 = firstColor, });
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OneGoCue(float beat, Color firstColor)
|
public void OneGoCue(double beat, Color firstColor)
|
||||||
{
|
{
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
||||||
new BeatAction.Action(beat, delegate {
|
new BeatAction.Action(beat, delegate {
|
||||||
|
@ -405,7 +405,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PreTwoTwoCue(float beat, Color firstColor, Color secondColor)
|
public static void PreTwoTwoCue(double beat, Color firstColor, Color secondColor)
|
||||||
{
|
{
|
||||||
PlaySoundSequence("munchyMonk", "two_go", beat);
|
PlaySoundSequence("munchyMonk", "two_go", beat);
|
||||||
|
|
||||||
|
@ -416,7 +416,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TwoTwoCue(float beat, Color firstColor, Color secondColor)
|
public void TwoTwoCue(double beat, Color firstColor, Color secondColor)
|
||||||
{
|
{
|
||||||
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
||||||
new BeatAction.Action(beat-0.5f, delegate {
|
new BeatAction.Action(beat-0.5f, delegate {
|
||||||
|
@ -443,7 +443,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PreThreeGoCue(float beat, Color firstColor, Color secondColor, Color thirdColor)
|
public static void PreThreeGoCue(double beat, Color firstColor, Color secondColor, Color thirdColor)
|
||||||
{
|
{
|
||||||
PlaySoundSequence("munchyMonk", "three_go", beat);
|
PlaySoundSequence("munchyMonk", "three_go", beat);
|
||||||
|
|
||||||
|
@ -455,7 +455,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ThreeGoCue(float beat, Color firstColor, Color secondColor, Color thirdColor)
|
public void ThreeGoCue(double beat, Color firstColor, Color secondColor, Color thirdColor)
|
||||||
{
|
{
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
||||||
new BeatAction.Action(beat, delegate {
|
new BeatAction.Action(beat, delegate {
|
||||||
|
@ -505,7 +505,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayMonkAnim(float beat, int whichAnim, bool vineBoom)
|
public void PlayMonkAnim(double beat, int whichAnim, bool vineBoom)
|
||||||
{
|
{
|
||||||
switch (whichAnim)
|
switch (whichAnim)
|
||||||
{
|
{
|
||||||
|
@ -520,15 +520,15 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
// it's in zeo's video; no reason not to include it :)
|
// it's in zeo's video; no reason not to include it :)
|
||||||
if (vineBoom) Jukebox.PlayOneShotGame("fanClub/arisa_dab", forcePlay: true);
|
if (vineBoom) SoundByte.PlayOneShotGame("fanClub/arisa_dab", forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayMonkAnimInactive(bool vineBoom)
|
public void PlayMonkAnimInactive(bool vineBoom)
|
||||||
{
|
{
|
||||||
if (vineBoom) Jukebox.PlayOneShotGame("fanClub/arisa_dab", forcePlay: true);
|
if (vineBoom) SoundByte.PlayOneShotGame("fanClub/arisa_dab", forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MonkMove(float beat, float length, int goToSide, int ease)
|
public void MonkMove(double beat, float length, int goToSide, int ease)
|
||||||
{
|
{
|
||||||
movingStartBeat = beat;
|
movingStartBeat = beat;
|
||||||
movingLength = length;
|
movingLength = length;
|
||||||
|
@ -537,7 +537,7 @@ namespace HeavenStudio.Games
|
||||||
lastEase = (EasingFunction.Ease)ease;
|
lastEase = (EasingFunction.Ease)ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Modifiers(float beat, int inputsTilGrow, bool resetLevel, int setLevel, bool disableBaby, bool shouldBlush)
|
public static void Modifiers(double beat, int inputsTilGrow, bool resetLevel, int setLevel, bool disableBaby, bool shouldBlush)
|
||||||
{
|
{
|
||||||
if (MunchyMonk.inputsTilGrow != inputsTilGrow) MunchyMonk.howManyGulps = inputsTilGrow * MunchyMonk.growLevel;
|
if (MunchyMonk.inputsTilGrow != inputsTilGrow) MunchyMonk.howManyGulps = inputsTilGrow * MunchyMonk.growLevel;
|
||||||
if (setLevel != 0) MunchyMonk.growLevel = setLevel;
|
if (setLevel != 0) MunchyMonk.growLevel = setLevel;
|
||||||
|
@ -555,7 +555,7 @@ namespace HeavenStudio.Games
|
||||||
MunchyMonk.instance.Baby.SetActive(!disableBaby);
|
MunchyMonk.instance.Baby.SetActive(!disableBaby);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ScrollBG(float beat, float length, float scrollSpeed, int ease)
|
public void ScrollBG(double beat, float length, float scrollSpeed, int ease)
|
||||||
{
|
{
|
||||||
scrollBeat = beat;
|
scrollBeat = beat;
|
||||||
scrollLength = length;
|
scrollLength = length;
|
||||||
|
|
|
@ -16,8 +16,8 @@ namespace HeavenStudio.Games.Scripts_OctopusMachine
|
||||||
public bool isSqueezed;
|
public bool isSqueezed;
|
||||||
public bool isPreparing;
|
public bool isPreparing;
|
||||||
public bool queuePrepare;
|
public bool queuePrepare;
|
||||||
public float lastReportedBeat = 0f;
|
public double lastReportedBeat = 0f;
|
||||||
float lastSqueezeBeat;
|
double lastSqueezeBeat;
|
||||||
bool isActive = true;
|
bool isActive = true;
|
||||||
|
|
||||||
private OctopusMachine game;
|
private OctopusMachine game;
|
||||||
|
@ -42,13 +42,13 @@ namespace HeavenStudio.Games.Scripts_OctopusMachine
|
||||||
{
|
{
|
||||||
if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN)) {
|
if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN)) {
|
||||||
OctoAction("Squeeze");
|
OctoAction("Squeeze");
|
||||||
Jukebox.PlayOneShotGame("nearMiss");
|
SoundByte.PlayOneShotGame("nearMiss");
|
||||||
game.hasMissed = true;
|
game.hasMissed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PlayerInput.PressedUp() && !game.IsExpectingInputNow(InputType.STANDARD_UP)) {
|
if (PlayerInput.PressedUp() && !game.IsExpectingInputNow(InputType.STANDARD_UP)) {
|
||||||
OctoAction(PlayerInput.Pressing(true) ? "Pop" : "Release");
|
OctoAction(PlayerInput.Pressing(true) ? "Pop" : "Release");
|
||||||
Jukebox.PlayOneShotGame("nearMiss");
|
SoundByte.PlayOneShotGame("nearMiss");
|
||||||
game.hasMissed = true;
|
game.hasMissed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,6 +79,7 @@ namespace HeavenStudio.Games.Scripts_OctopusMachine
|
||||||
1 => "Happy",
|
1 => "Happy",
|
||||||
2 => "Angry",
|
2 => "Angry",
|
||||||
3 => "Oops",
|
3 => "Oops",
|
||||||
|
_ => "Bop"
|
||||||
}, 0.5f);
|
}, 0.5f);
|
||||||
isPreparing =
|
isPreparing =
|
||||||
isSqueezed = false;
|
isSqueezed = false;
|
||||||
|
@ -99,8 +100,8 @@ namespace HeavenStudio.Games.Scripts_OctopusMachine
|
||||||
|
|
||||||
public void OctoAction(string action)
|
public void OctoAction(string action)
|
||||||
{
|
{
|
||||||
if (action != "Release" || (Conductor.instance.songPositionInBeats - lastSqueezeBeat) > 0.15f) Jukebox.PlayOneShotGame($"octopusMachine/{action.ToLower()}");
|
if (action != "Release" || (Conductor.instance.songPositionInBeatsAsDouble - lastSqueezeBeat) > 0.15f) SoundByte.PlayOneShotGame($"octopusMachine/{action.ToLower()}");
|
||||||
if (action == "Squeeze") lastSqueezeBeat = Conductor.instance.songPositionInBeats;
|
if (action == "Squeeze") lastSqueezeBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
anim.DoScaledAnimationAsync(action, 0.5f);
|
anim.DoScaledAnimationAsync(action, 0.5f);
|
||||||
isSqueezed = (action == "Squeeze");
|
isSqueezed = (action == "Squeeze");
|
||||||
|
|
|
@ -188,13 +188,13 @@ namespace HeavenStudio.Games
|
||||||
int bopIterate = 0;
|
int bopIterate = 0;
|
||||||
bool intervalStarted;
|
bool intervalStarted;
|
||||||
bool autoAction;
|
bool autoAction;
|
||||||
float intervalStartBeat;
|
double intervalStartBeat;
|
||||||
float beatInterval = 1f;
|
float beatInterval = 1f;
|
||||||
float lastReportedBeat;
|
double lastReportedBeat;
|
||||||
|
|
||||||
static List<float> queuedSqueezes = new List<float>();
|
static List<double> queuedSqueezes = new();
|
||||||
static List<float> queuedReleases = new List<float>();
|
static List<double> queuedReleases = new();
|
||||||
static List<float> queuedPops = new List<float>();
|
static List<double> queuedPops = new();
|
||||||
|
|
||||||
public static OctopusMachine instance;
|
public static OctopusMachine instance;
|
||||||
|
|
||||||
|
@ -257,7 +257,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Prepare(float beat, float prepBeats)
|
public static void Prepare(double beat, float prepBeats)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame != "octopusMachine") {
|
if (GameManager.instance.currentGame != "octopusMachine") {
|
||||||
OctopusMachine.queuePrepare = true;
|
OctopusMachine.queuePrepare = true;
|
||||||
|
@ -306,7 +306,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OctoAction(float beat, float length, string action)
|
public void OctoAction(double beat, float length, string action)
|
||||||
{
|
{
|
||||||
if (action != "Squeeze" && !octopodes[0].isSqueezed) return;
|
if (action != "Squeeze" && !octopodes[0].isSqueezed) return;
|
||||||
if (!intervalStarted) StartInterval(beat, length);
|
if (!intervalStarted) StartInterval(beat, length);
|
||||||
|
@ -319,7 +319,7 @@ namespace HeavenStudio.Games
|
||||||
queuedList.Add(beat - intervalStartBeat);
|
queuedList.Add(beat - intervalStartBeat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float length, int whichBop, bool singleBop, bool keepBop)
|
public void Bop(double length, int whichBop, bool singleBop, bool keepBop)
|
||||||
{
|
{
|
||||||
foreach (var octo in octopodes) {
|
foreach (var octo in octopodes) {
|
||||||
if (singleBop) octo.PlayAnimation(whichBop);
|
if (singleBop) octo.PlayAnimation(whichBop);
|
||||||
|
@ -349,7 +349,7 @@ namespace HeavenStudio.Games
|
||||||
foreach (var octo in octopodes) octo.AnimationColor(octo.isSqueezed ? 1 : 0);
|
foreach (var octo in octopodes) octo.AnimationColor(octo.isSqueezed ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OctopusModifiers(float beat, float oct1x, float oct2x, float oct3x, float oct1y, float oct2y, float oct3y, bool oct1, bool oct2, bool oct3)
|
public void OctopusModifiers(double beat, float oct1x, float oct2x, float oct3x, float oct1y, float oct2y, float oct3y, bool oct1, bool oct2, bool oct3)
|
||||||
{
|
{
|
||||||
octopodes[0].OctopusModifiers(oct1x, oct1y, oct1);
|
octopodes[0].OctopusModifiers(oct1x, oct1y, oct1);
|
||||||
octopodes[1].OctopusModifiers(oct2x, oct2y, oct2);
|
octopodes[1].OctopusModifiers(oct2x, oct2y, oct2);
|
||||||
|
@ -361,7 +361,7 @@ namespace HeavenStudio.Games
|
||||||
foreach (var octo in octopodes) octo.ForceSqueeze();
|
foreach (var octo in octopodes) octo.ForceSqueeze();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartInterval(float beat, float length)
|
public void StartInterval(double beat, float length)
|
||||||
{
|
{
|
||||||
intervalStartBeat = beat;
|
intervalStartBeat = beat;
|
||||||
beatInterval = length;
|
beatInterval = length;
|
||||||
|
@ -373,7 +373,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PassTurn(float beat)
|
public void PassTurn(double beat)
|
||||||
{
|
{
|
||||||
intervalStarted = false;
|
intervalStarted = false;
|
||||||
var queuedInputs = new List<BeatAction.Action>();
|
var queuedInputs = new List<BeatAction.Action>();
|
||||||
|
@ -402,19 +402,19 @@ namespace HeavenStudio.Games
|
||||||
private void SqueezeHit(PlayerActionEvent caller, float state)
|
private void SqueezeHit(PlayerActionEvent caller, float state)
|
||||||
{
|
{
|
||||||
octopodes[2].OctoAction("Squeeze");
|
octopodes[2].OctoAction("Squeeze");
|
||||||
if (state <= -1f || state >= 1f) Jukebox.PlayOneShotGame("nearMiss");
|
if (state <= -1f || state >= 1f) SoundByte.PlayOneShotGame("nearMiss");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ReleaseHit(PlayerActionEvent caller, float state)
|
private void ReleaseHit(PlayerActionEvent caller, float state)
|
||||||
{
|
{
|
||||||
octopodes[2].OctoAction("Release");
|
octopodes[2].OctoAction("Release");
|
||||||
if (state <= -1f || state >= 1f) Jukebox.PlayOneShotGame("nearMiss");
|
if (state <= -1f || state >= 1f) SoundByte.PlayOneShotGame("nearMiss");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PopHit(PlayerActionEvent caller, float state)
|
private void PopHit(PlayerActionEvent caller, float state)
|
||||||
{
|
{
|
||||||
octopodes[2].OctoAction("Pop");
|
octopodes[2].OctoAction("Pop");
|
||||||
if (state <= -1f || state >= 1f) Jukebox.PlayOneShotGame("nearMiss");
|
if (state <= -1f || state >= 1f) SoundByte.PlayOneShotGame("nearMiss");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Miss(PlayerActionEvent caller) { }
|
private void Miss(PlayerActionEvent caller) { }
|
||||||
|
|
|
@ -19,14 +19,14 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
public int row;
|
public int row;
|
||||||
public int col;
|
public int col;
|
||||||
|
|
||||||
float startJumpTime = Single.MinValue;
|
double startJumpTime = double.MinValue;
|
||||||
float jumpLength = 1f;
|
float jumpLength = 1f;
|
||||||
float jumpHeight = 4f;
|
float jumpHeight = 4f;
|
||||||
int jumpAlt;
|
int jumpAlt;
|
||||||
|
|
||||||
private bool hasJumped = false;
|
private bool hasJumped = false;
|
||||||
|
|
||||||
float startThrowTime = Single.MinValue;
|
double startThrowTime = double.MinValue;
|
||||||
float throwLength = 4f;
|
float throwLength = 4f;
|
||||||
float throwHeight = 12f;
|
float throwHeight = 12f;
|
||||||
private bool hasThrown = false;
|
private bool hasThrown = false;
|
||||||
|
@ -73,7 +73,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
Monkey.transform.rotation = Quaternion.Euler(0, 0, 0);
|
Monkey.transform.rotation = Quaternion.Euler(0, 0, 0);
|
||||||
jumpAlt = 0;
|
jumpAlt = 0;
|
||||||
}
|
}
|
||||||
startJumpTime = Single.MinValue;
|
startJumpTime = double.MinValue;
|
||||||
Monkey.transform.localPosition = new Vector3(0, 0);
|
Monkey.transform.localPosition = new Vector3(0, 0);
|
||||||
Shadow.transform.localScale = new Vector3(1.2f, 0.8f, 1f);
|
Shadow.transform.localScale = new Vector3(1.2f, 0.8f, 1f);
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
startThrowTime = Single.MinValue;
|
startThrowTime = double.MinValue;
|
||||||
if (hasThrown)
|
if (hasThrown)
|
||||||
{
|
{
|
||||||
Projectile.transform.localPosition = new Vector3(0, 0);
|
Projectile.transform.localPosition = new Vector3(0, 0);
|
||||||
|
@ -102,7 +102,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Jump(float beat, int alt = 1)
|
public void Jump(double beat, int alt = 1)
|
||||||
{
|
{
|
||||||
startJumpTime = beat;
|
startJumpTime = beat;
|
||||||
jumpAlt = 0;
|
jumpAlt = 0;
|
||||||
|
@ -112,22 +112,22 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Charge(float beat)
|
public void Charge(double beat)
|
||||||
{
|
{
|
||||||
anim.DoUnscaledAnimation("MonkeyReady");
|
anim.DoUnscaledAnimation("MonkeyReady");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Throw(float beat)
|
public void Throw(double beat)
|
||||||
{
|
{
|
||||||
anim.DoUnscaledAnimation("MonkeyThrow");
|
anim.DoUnscaledAnimation("MonkeyThrow");
|
||||||
startThrowTime = beat;
|
startThrowTime = beat;
|
||||||
Projectile.SetActive(true);
|
Projectile.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ReadySleep(float beat, int action)
|
public void ReadySleep(double beat, int action)
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
startThrowTime = Single.MinValue;
|
startThrowTime = double.MinValue;
|
||||||
Projectile.transform.localPosition = new Vector3(0, 0);
|
Projectile.transform.localPosition = new Vector3(0, 0);
|
||||||
Projectile.transform.rotation = Quaternion.Euler(0, 0, 0);
|
Projectile.transform.rotation = Quaternion.Euler(0, 0, 0);
|
||||||
if (hasThrown)
|
if (hasThrown)
|
||||||
|
@ -136,7 +136,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
hasThrown = false;
|
hasThrown = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
startJumpTime = Single.MinValue;
|
startJumpTime = double.MinValue;
|
||||||
Monkey.transform.localPosition = new Vector3(0, 0);
|
Monkey.transform.localPosition = new Vector3(0, 0);
|
||||||
Shadow.transform.localScale = new Vector3(1.2f, 0.8f, 1f);
|
Shadow.transform.localScale = new Vector3(1.2f, 0.8f, 1f);
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
public GameObject Projectile_Root;
|
public GameObject Projectile_Root;
|
||||||
|
|
||||||
public Animator anim;
|
public Animator anim;
|
||||||
float startJumpTime = Single.MinValue;
|
double startJumpTime = double.MinValue;
|
||||||
float jumpLength = 0;
|
float jumpLength = 0;
|
||||||
float jumpHeight = 0;
|
float jumpHeight = 0;
|
||||||
bool jumpNg = false;
|
bool jumpNg = false;
|
||||||
|
@ -27,7 +27,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
private bool charging = false;
|
private bool charging = false;
|
||||||
private bool canCharge = true;
|
private bool canCharge = true;
|
||||||
|
|
||||||
float startThrowTime = Single.MinValue;
|
double startThrowTime = double.MinValue;
|
||||||
float throwLength = 0;
|
float throwLength = 0;
|
||||||
float throwHeight = 0;
|
float throwHeight = 0;
|
||||||
// true = throw, false = dropped ("Out")
|
// true = throw, false = dropped ("Out")
|
||||||
|
@ -51,8 +51,8 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
|
|
||||||
if (PlayerInput.Pressed() && canJump && !PajamaParty.instance.IsExpectingInputNow(InputType.STANDARD_DOWN))
|
if (PlayerInput.Pressed() && canJump && !PajamaParty.instance.IsExpectingInputNow(InputType.STANDARD_DOWN))
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
PlayerJump(cond.songPositionInBeats, true, false);
|
PlayerJump(cond.songPositionInBeatsAsDouble, true, false);
|
||||||
PajamaParty.instance.ScoreMiss();
|
PajamaParty.instance.ScoreMiss();
|
||||||
}
|
}
|
||||||
if (PlayerInput.AltPressed() && canCharge)
|
if (PlayerInput.AltPressed() && canCharge)
|
||||||
|
@ -61,8 +61,8 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
}
|
}
|
||||||
if (PlayerInput.AltPressedUp() && charging && !PajamaParty.instance.IsExpectingInputNow(InputType.STANDARD_ALT_UP))
|
if (PlayerInput.AltPressedUp() && charging && !PajamaParty.instance.IsExpectingInputNow(InputType.STANDARD_ALT_UP))
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
EndCharge(cond.songPositionInBeats, false, false);
|
EndCharge(cond.songPositionInBeatsAsDouble, false, false);
|
||||||
PajamaParty.instance.ScoreMiss();
|
PajamaParty.instance.ScoreMiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
anim.DoScaledAnimationAsync("MakoLand");
|
anim.DoScaledAnimationAsync("MakoLand");
|
||||||
jumpNg = false;
|
jumpNg = false;
|
||||||
}
|
}
|
||||||
startJumpTime = Single.MinValue;
|
startJumpTime = double.MinValue;
|
||||||
Player.transform.localPosition = new Vector3(0, 0);
|
Player.transform.localPosition = new Vector3(0, 0);
|
||||||
Shadow.transform.localScale = new Vector3(1.65f, 1f, 1f);
|
Shadow.transform.localScale = new Vector3(1.65f, 1f, 1f);
|
||||||
}
|
}
|
||||||
|
@ -118,7 +118,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
startThrowTime = Single.MinValue;
|
startThrowTime = double.MinValue;
|
||||||
Projectile_Root.transform.localPosition = new Vector3(0, 0);
|
Projectile_Root.transform.localPosition = new Vector3(0, 0);
|
||||||
if (hasThrown)
|
if (hasThrown)
|
||||||
{
|
{
|
||||||
|
@ -133,7 +133,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
anim.DoUnscaledAnimation("MakoCatch");
|
anim.DoUnscaledAnimation("MakoCatch");
|
||||||
}
|
}
|
||||||
//TODO: change when locales are a thing
|
//TODO: change when locales are a thing
|
||||||
Jukebox.PlayOneShotGame("pajamaParty/catch" + UnityEngine.Random.Range(0, 2)); //bruh
|
SoundByte.PlayOneShotGame("pajamaParty/catch" + UnityEngine.Random.Range(0, 2)); //bruh
|
||||||
|
|
||||||
Projectile.SetActive(false);
|
Projectile.SetActive(false);
|
||||||
hasThrown = false;
|
hasThrown = false;
|
||||||
|
@ -145,7 +145,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ProjectileThrow(float beat, bool drop = false, bool ng = false)
|
public void ProjectileThrow(double beat, bool drop = false, bool ng = false)
|
||||||
{
|
{
|
||||||
throwNg = ng;
|
throwNg = ng;
|
||||||
Projectile.SetActive(true);
|
Projectile.SetActive(true);
|
||||||
|
@ -165,7 +165,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayerJump(float beat, bool pressout = false, bool ng = false)
|
public void PlayerJump(double beat, bool pressout = false, bool ng = false)
|
||||||
{
|
{
|
||||||
startJumpTime = beat;
|
startJumpTime = beat;
|
||||||
canCharge = false;
|
canCharge = false;
|
||||||
|
@ -184,7 +184,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
charging = true;
|
charging = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void EndCharge(float beat, bool hit = true, bool ng = false)
|
public void EndCharge(double beat, bool hit = true, bool ng = false)
|
||||||
{
|
{
|
||||||
ProjectileThrow(beat, !hit, ng);
|
ProjectileThrow(beat, !hit, ng);
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
|
@ -201,7 +201,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
beat + 0.5f,
|
beat + 0.5f,
|
||||||
delegate {
|
delegate {
|
||||||
anim.DoScaledAnimationAsync("MakoPickUp");
|
anim.DoScaledAnimationAsync("MakoPickUp");
|
||||||
Jukebox.PlayOneShotGame("pajamaParty/catch" + UnityEngine.Random.Range(0, 2)); //bruh
|
SoundByte.PlayOneShotGame("pajamaParty/catch" + UnityEngine.Random.Range(0, 2)); //bruh
|
||||||
Projectile.SetActive(false);
|
Projectile.SetActive(false);
|
||||||
canCharge = true;
|
canCharge = true;
|
||||||
canJump = true;
|
canJump = true;
|
||||||
|
@ -211,7 +211,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayerThrough(float beat)
|
public void PlayerThrough(double beat)
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
anim.DoScaledAnimationAsync("MakoThrough", 0.5f);
|
anim.DoScaledAnimationAsync("MakoThrough", 0.5f);
|
||||||
|
@ -231,7 +231,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
}
|
}
|
||||||
|
|
||||||
// jumping cues (timings for both are the same)
|
// jumping cues (timings for both are the same)
|
||||||
public void ScheduleJump(float beat)
|
public void ScheduleJump(double beat)
|
||||||
{
|
{
|
||||||
PajamaParty.instance.ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JumpJustOrNg, JumpThrough, JumpOut);
|
PajamaParty.instance.ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, JumpJustOrNg, JumpThrough, JumpOut);
|
||||||
}
|
}
|
||||||
|
@ -243,13 +243,13 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
if (state <= -1f || state >= 1f)
|
if (state <= -1f || state >= 1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
PlayerJump(cond.songPositionInBeats, false, true);
|
PlayerJump(cond.songPositionInBeatsAsDouble, false, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("pajamaParty/jumpJust");
|
SoundByte.PlayOneShotGame("pajamaParty/jumpJust");
|
||||||
PlayerJump(cond.songPositionInBeats, false, false);
|
PlayerJump(cond.songPositionInBeatsAsDouble, false, false);
|
||||||
}
|
}
|
||||||
caller.CanHit(false);
|
caller.CanHit(false);
|
||||||
}
|
}
|
||||||
|
@ -262,13 +262,13 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
if (canJump)
|
if (canJump)
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
PlayerThrough(cond.songPositionInBeats);
|
PlayerThrough(cond.songPositionInBeatsAsDouble);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//////
|
//////
|
||||||
|
|
||||||
// throw cue
|
// throw cue
|
||||||
public void ScheduleThrow(float beat)
|
public void ScheduleThrow(double beat)
|
||||||
{
|
{
|
||||||
PajamaParty.instance.ScheduleInput(beat, 2f, InputType.STANDARD_ALT_DOWN, ChargeJustOrNg, ThrowThrough, JumpOut);
|
PajamaParty.instance.ScheduleInput(beat, 2f, InputType.STANDARD_ALT_DOWN, ChargeJustOrNg, ThrowThrough, JumpOut);
|
||||||
PajamaParty.instance.ScheduleInput(beat, 3f, InputType.STANDARD_ALT_UP, ThrowJustOrNg, ThrowThrough, JumpOut);
|
PajamaParty.instance.ScheduleInput(beat, 3f, InputType.STANDARD_ALT_UP, ThrowJustOrNg, ThrowThrough, JumpOut);
|
||||||
|
@ -277,7 +277,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
public void ChargeJustOrNg(PlayerActionEvent caller, float state) {
|
public void ChargeJustOrNg(PlayerActionEvent caller, float state) {
|
||||||
StartCharge();
|
StartCharge();
|
||||||
throwNg = (state <= -1f || state >= 1f);
|
throwNg = (state <= -1f || state >= 1f);
|
||||||
Jukebox.PlayOneShotGame("pajamaParty/throw4");
|
SoundByte.PlayOneShotGame("pajamaParty/throw4");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ThrowJustOrNg(PlayerActionEvent caller, float state)
|
public void ThrowJustOrNg(PlayerActionEvent caller, float state)
|
||||||
|
@ -287,13 +287,13 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
if (state <= -1f || state >= 1f)
|
if (state <= -1f || state >= 1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
EndCharge(cond.songPositionInBeats, true, true);
|
EndCharge(cond.songPositionInBeatsAsDouble, true, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("pajamaParty/throw5");
|
SoundByte.PlayOneShotGame("pajamaParty/throw5");
|
||||||
EndCharge(cond.songPositionInBeats, true, (throwNg || false));
|
EndCharge(cond.songPositionInBeatsAsDouble, true, (throwNg || false));
|
||||||
}
|
}
|
||||||
caller.CanHit(false);
|
caller.CanHit(false);
|
||||||
}
|
}
|
||||||
|
@ -304,13 +304,13 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
if (canCharge)
|
if (canCharge)
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
PlayerThrough(cond.songPositionInBeats);
|
PlayerThrough(cond.songPositionInBeatsAsDouble);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
||||||
// sleep cue
|
// sleep cue
|
||||||
public void StartSleepSequence(float beat, bool alt, int action)
|
public void StartSleepSequence(double beat, bool alt, int action)
|
||||||
{
|
{
|
||||||
if (hasJumped)
|
if (hasJumped)
|
||||||
{
|
{
|
||||||
|
@ -318,12 +318,12 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
PajamaParty.instance.DoBedImpact();
|
PajamaParty.instance.DoBedImpact();
|
||||||
jumpNg = false;
|
jumpNg = false;
|
||||||
}
|
}
|
||||||
startJumpTime = Single.MinValue;
|
startJumpTime = double.MinValue;
|
||||||
Player.transform.localPosition = new Vector3(0, 0);
|
Player.transform.localPosition = new Vector3(0, 0);
|
||||||
Shadow.transform.localScale = new Vector3(1.65f, 1f, 1f);
|
Shadow.transform.localScale = new Vector3(1.65f, 1f, 1f);
|
||||||
|
|
||||||
Projectile.GetComponent<Animator>().Play("NoPose", -1, 0);
|
Projectile.GetComponent<Animator>().Play("NoPose", -1, 0);
|
||||||
startThrowTime = Single.MinValue;
|
startThrowTime = double.MinValue;
|
||||||
Projectile_Root.transform.localPosition = new Vector3(0, 0);
|
Projectile_Root.transform.localPosition = new Vector3(0, 0);
|
||||||
Projectile.transform.rotation = Quaternion.Euler(0, 0, 0);
|
Projectile.transform.rotation = Quaternion.Euler(0, 0, 0);
|
||||||
if (hasThrown)
|
if (hasThrown)
|
||||||
|
@ -347,7 +347,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
|
|
||||||
anim.DoScaledAnimationAsync("MakoLand");
|
anim.DoScaledAnimationAsync("MakoLand");
|
||||||
}
|
}
|
||||||
startJumpTime = Single.MinValue;
|
startJumpTime = double.MinValue;
|
||||||
Player.transform.localPosition = new Vector3(0, 0);
|
Player.transform.localPosition = new Vector3(0, 0);
|
||||||
Shadow.transform.localScale = new Vector3(1.65f, 1f, 1f);
|
Shadow.transform.localScale = new Vector3(1.65f, 1f, 1f);
|
||||||
|
|
||||||
|
@ -400,7 +400,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
anim.DoUnscaledAnimation("MakoSleepNg");
|
anim.DoUnscaledAnimation("MakoSleepNg");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("pajamaParty/siesta4");
|
SoundByte.PlayOneShotGame("pajamaParty/siesta4");
|
||||||
anim.DoScaledAnimationAsync("MakoSleepJust");
|
anim.DoScaledAnimationAsync("MakoSleepJust");
|
||||||
|
|
||||||
if (!longSleep)
|
if (!longSleep)
|
||||||
|
@ -411,7 +411,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
caller.startBeat + 7f,
|
caller.startBeat + 7f,
|
||||||
delegate {
|
delegate {
|
||||||
anim.DoScaledAnimationAsync("MakoAwake");
|
anim.DoScaledAnimationAsync("MakoAwake");
|
||||||
Jukebox.PlayOneShotGame("pajamaParty/siestaDone");
|
SoundByte.PlayOneShotGame("pajamaParty/siestaDone");
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
@ -438,7 +438,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||||
if (canSleep)
|
if (canSleep)
|
||||||
{
|
{
|
||||||
anim.DoScaledAnimationAsync("MakoSleepOut", 0.5f);
|
anim.DoScaledAnimationAsync("MakoSleepOut", 0.5f);
|
||||||
Jukebox.PlayOneShotGame("pajamaParty/siestaBad");
|
SoundByte.PlayOneShotGame("pajamaParty/siestaBad");
|
||||||
caller.CanHit(false);
|
caller.CanHit(false);
|
||||||
canSleep = false;
|
canSleep = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,10 +75,10 @@ namespace HeavenStudio.Games
|
||||||
CtrPillowMonkey[,] monkeys;
|
CtrPillowMonkey[,] monkeys;
|
||||||
|
|
||||||
//cues while unoaded
|
//cues while unoaded
|
||||||
static float WantThreeJump = Single.MinValue;
|
static double WantThreeJump = double.MinValue;
|
||||||
static float WantFiveJump = Single.MinValue;
|
static double WantFiveJump = double.MinValue;
|
||||||
static float WantThrowSequence = Single.MinValue;
|
static double WantThrowSequence = double.MinValue;
|
||||||
static float WantSleepSequence = Single.MinValue;
|
static double WantSleepSequence = double.MinValue;
|
||||||
static bool WantSleepType = false;
|
static bool WantSleepType = false;
|
||||||
static int WantSleepAction = (int) PajamaParty.SleepType.Normal;
|
static int WantSleepAction = (int) PajamaParty.SleepType.Normal;
|
||||||
|
|
||||||
|
@ -129,31 +129,31 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnGameSwitch(float beat)
|
public override void OnGameSwitch(double beat)
|
||||||
{
|
{
|
||||||
if (WantThreeJump != Single.MinValue)
|
if (WantThreeJump != double.MinValue)
|
||||||
{
|
{
|
||||||
DoThreeJump(WantThreeJump, false);
|
DoThreeJump(WantThreeJump, false);
|
||||||
WantThreeJump = Single.MinValue;
|
WantThreeJump = double.MinValue;
|
||||||
}
|
}
|
||||||
if (WantFiveJump != Single.MinValue)
|
if (WantFiveJump != double.MinValue)
|
||||||
{
|
{
|
||||||
DoFiveJump(WantFiveJump, false);
|
DoFiveJump(WantFiveJump, false);
|
||||||
WantFiveJump = Single.MinValue;
|
WantFiveJump = double.MinValue;
|
||||||
}
|
}
|
||||||
if (WantThrowSequence != Single.MinValue)
|
if (WantThrowSequence != double.MinValue)
|
||||||
{
|
{
|
||||||
DoThrowSequence(WantThrowSequence, false);
|
DoThrowSequence(WantThrowSequence, false);
|
||||||
WantThrowSequence = Single.MinValue;
|
WantThrowSequence = double.MinValue;
|
||||||
}
|
}
|
||||||
if (WantSleepSequence != Single.MinValue)
|
if (WantSleepSequence != double.MinValue)
|
||||||
{
|
{
|
||||||
DoSleepSequence(WantSleepSequence, WantSleepType, WantSleepAction, false);
|
DoSleepSequence(WantSleepSequence, WantSleepType, WantSleepAction, false);
|
||||||
WantSleepSequence = Single.MinValue;
|
WantSleepSequence = double.MinValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoThreeJump(float beat, bool doSound = true)
|
public void DoThreeJump(double beat, bool doSound = true)
|
||||||
{
|
{
|
||||||
Mako.ScheduleJump(beat);
|
Mako.ScheduleJump(beat);
|
||||||
if (doSound)
|
if (doSound)
|
||||||
|
@ -188,7 +188,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WarnThreeJump(float beat)
|
public static void WarnThreeJump(double beat)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[] {
|
MultiSound.Play(new MultiSound.Sound[] {
|
||||||
new MultiSound.Sound("pajamaParty/three1", beat),
|
new MultiSound.Sound("pajamaParty/three1", beat),
|
||||||
|
@ -198,7 +198,7 @@ namespace HeavenStudio.Games
|
||||||
WantThreeJump = beat;
|
WantThreeJump = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoFiveJump(float beat, bool doSound = true)
|
public void DoFiveJump(double beat, bool doSound = true)
|
||||||
{
|
{
|
||||||
Mako.ScheduleJump(beat);
|
Mako.ScheduleJump(beat);
|
||||||
if (doSound)
|
if (doSound)
|
||||||
|
@ -220,7 +220,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WarnFiveJump(float beat)
|
public static void WarnFiveJump(double beat)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[] {
|
MultiSound.Play(new MultiSound.Sound[] {
|
||||||
new MultiSound.Sound("pajamaParty/five1", beat),
|
new MultiSound.Sound("pajamaParty/five1", beat),
|
||||||
|
@ -232,7 +232,7 @@ namespace HeavenStudio.Games
|
||||||
WantFiveJump = beat;
|
WantFiveJump = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoThrowSequence(float beat, bool doSound = true)
|
public void DoThrowSequence(double beat, bool doSound = true)
|
||||||
{
|
{
|
||||||
Mako.ScheduleThrow(beat);
|
Mako.ScheduleThrow(beat);
|
||||||
if (doSound)
|
if (doSound)
|
||||||
|
@ -245,13 +245,13 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WarnThrowSequence(float beat)
|
public static void WarnThrowSequence(double beat)
|
||||||
{
|
{
|
||||||
PlayThrowSequenceSound(beat, true);
|
PlayThrowSequenceSound(beat, true);
|
||||||
WantThrowSequence = beat;
|
WantThrowSequence = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PlayThrowSequenceSound(float beat, bool force = false)
|
public static void PlayThrowSequenceSound(double beat, bool force = false)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[] {
|
MultiSound.Play(new MultiSound.Sound[] {
|
||||||
new MultiSound.Sound("pajamaParty/throw1", beat),
|
new MultiSound.Sound("pajamaParty/throw1", beat),
|
||||||
|
@ -265,7 +265,7 @@ namespace HeavenStudio.Games
|
||||||
}, forcePlay: force);
|
}, forcePlay: force);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoSleepSequence(float beat, bool alt = false, int action = (int) PajamaParty.SleepType.Normal, bool doSound = true)
|
public void DoSleepSequence(double beat, bool alt = false, int action = (int) PajamaParty.SleepType.Normal, bool doSound = true)
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
Mako.StartSleepSequence(beat, alt, action);
|
Mako.StartSleepSequence(beat, alt, action);
|
||||||
|
@ -280,7 +280,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WarnSleepSequence(float beat, bool alt = false, int action = (int) PajamaParty.SleepType.Normal)
|
public static void WarnSleepSequence(double beat, bool alt = false, int action = (int) PajamaParty.SleepType.Normal)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[] {
|
MultiSound.Play(new MultiSound.Sound[] {
|
||||||
new MultiSound.Sound("pajamaParty/siesta1", beat),
|
new MultiSound.Sound("pajamaParty/siesta1", beat),
|
||||||
|
@ -299,7 +299,7 @@ namespace HeavenStudio.Games
|
||||||
Bed.GetComponent<Animator>().Play("BedImpact", -1, 0);
|
Bed.GetComponent<Animator>().Play("BedImpact", -1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void JumpRow(int row, float beat, int alt = 1)
|
public void JumpRow(int row, double beat, int alt = 1)
|
||||||
{
|
{
|
||||||
if (row > 4 || row < 0)
|
if (row > 4 || row < 0)
|
||||||
{
|
{
|
||||||
|
@ -314,7 +314,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void JumpCol(int col, float beat, int alt = 1)
|
public void JumpCol(int col, double beat, int alt = 1)
|
||||||
{
|
{
|
||||||
if (col > 4 || col < 0)
|
if (col > 4 || col < 0)
|
||||||
{
|
{
|
||||||
|
@ -329,7 +329,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MonkeyCharge(float beat)
|
public void MonkeyCharge(double beat)
|
||||||
{
|
{
|
||||||
foreach (CtrPillowMonkey monkey in monkeys)
|
foreach (CtrPillowMonkey monkey in monkeys)
|
||||||
{
|
{
|
||||||
|
@ -340,7 +340,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MonkeyThrow(float beat)
|
public void MonkeyThrow(double beat)
|
||||||
{
|
{
|
||||||
foreach (CtrPillowMonkey monkey in monkeys)
|
foreach (CtrPillowMonkey monkey in monkeys)
|
||||||
{
|
{
|
||||||
|
@ -351,7 +351,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MonkeySleep(float beat, int action)
|
public void MonkeySleep(double beat, int action)
|
||||||
{
|
{
|
||||||
foreach (CtrPillowMonkey monkey in monkeys)
|
foreach (CtrPillowMonkey monkey in monkeys)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,8 +25,8 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public ActionEventCallback OnDestroy; //Function to trigger whenever this event gets destroyed. /!\ Shouldn't be used for a minigame! Use OnMiss instead /!\
|
public ActionEventCallback OnDestroy; //Function to trigger whenever this event gets destroyed. /!\ Shouldn't be used for a minigame! Use OnMiss instead /!\
|
||||||
|
|
||||||
public float startBeat;
|
public double startBeat;
|
||||||
public float timer;
|
public double timer;
|
||||||
|
|
||||||
public bool isEligible = true;
|
public bool isEligible = true;
|
||||||
public bool canHit = true; //Indicates if you can still hit the cue or not. If set to false, it'll guarantee a miss
|
public bool canHit = true; //Indicates if you can still hit the cue or not. If set to false, it'll guarantee a miss
|
||||||
|
|
|
@ -170,8 +170,8 @@ namespace HeavenStudio.Games
|
||||||
bool intervalStarted;
|
bool intervalStarted;
|
||||||
bool shouldResetCount;
|
bool shouldResetCount;
|
||||||
bool doingConsectiveIntervals;
|
bool doingConsectiveIntervals;
|
||||||
float intervalStartBeat;
|
double intervalStartBeat;
|
||||||
float playerIntervalStartBeat;
|
double playerIntervalStartBeat;
|
||||||
float playerBeatInterval;
|
float playerBeatInterval;
|
||||||
float beatInterval = 8f;
|
float beatInterval = 8f;
|
||||||
int currentStage;
|
int currentStage;
|
||||||
|
@ -181,7 +181,7 @@ namespace HeavenStudio.Games
|
||||||
bool signExploded;
|
bool signExploded;
|
||||||
struct QueuedInput
|
struct QueuedInput
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public bool dpad;
|
public bool dpad;
|
||||||
}
|
}
|
||||||
static List<QueuedInput> queuedInputs = new List<QueuedInput>();
|
static List<QueuedInput> queuedInputs = new List<QueuedInput>();
|
||||||
|
@ -237,7 +237,7 @@ namespace HeavenStudio.Games
|
||||||
currentStage = stage;
|
currentStage = stage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RandomPress(float beat, float length, int min, int max, int whichButtons, bool consecutive)
|
public void RandomPress(double beat, float length, int min, int max, int whichButtons, bool consecutive)
|
||||||
{
|
{
|
||||||
if (min > max) return;
|
if (min > max) return;
|
||||||
int pressAmount = UnityEngine.Random.Range(min, max + 1);
|
int pressAmount = UnityEngine.Random.Range(min, max + 1);
|
||||||
|
@ -265,7 +265,7 @@ namespace HeavenStudio.Games
|
||||||
dpad = i % 2 != 0;
|
dpad = i % 2 != 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
float spawnBeat = beat + i * length;
|
double spawnBeat = beat + i * length;
|
||||||
buttonEvents.Add(new BeatAction.Action(spawnBeat, delegate { HostPressButton(spawnBeat, dpad); }));
|
buttonEvents.Add(new BeatAction.Action(spawnBeat, delegate { HostPressButton(spawnBeat, dpad); }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -293,7 +293,7 @@ namespace HeavenStudio.Games
|
||||||
dpad = i % 2 != 0;
|
dpad = i % 2 != 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
float spawnBeat = beat + i * length;
|
double spawnBeat = beat + i * length;
|
||||||
buttonEvents.Add(new BeatAction.Action(spawnBeat, delegate { HostPressButton(spawnBeat, dpad); }));
|
buttonEvents.Add(new BeatAction.Action(spawnBeat, delegate { HostPressButton(spawnBeat, dpad); }));
|
||||||
pressAmount--;
|
pressAmount--;
|
||||||
}
|
}
|
||||||
|
@ -302,7 +302,7 @@ namespace HeavenStudio.Games
|
||||||
BeatAction.New(instance.gameObject, buttonEvents);
|
BeatAction.New(instance.gameObject, buttonEvents);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HostPressButton(float beat, bool dpad)
|
public void HostPressButton(double beat, bool dpad)
|
||||||
{
|
{
|
||||||
if (!intervalStarted)
|
if (!intervalStarted)
|
||||||
{
|
{
|
||||||
|
@ -317,7 +317,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
hostHead.DoScaledAnimationAsync("HostStage" + currentStage.ToString(), 0.5f);
|
hostHead.DoScaledAnimationAsync("HostStage" + currentStage.ToString(), 0.5f);
|
||||||
}
|
}
|
||||||
Jukebox.PlayOneShotGame( dpad ? "quizShow/hostDPad" : "quizShow/hostA");
|
SoundByte.PlayOneShotGame( dpad ? "quizShow/hostDPad" : "quizShow/hostA");
|
||||||
if (dpad)
|
if (dpad)
|
||||||
{
|
{
|
||||||
hostRightArmAnim.DoScaledAnimationAsync("HostRightHit", 0.5f);
|
hostRightArmAnim.DoScaledAnimationAsync("HostRightHit", 0.5f);
|
||||||
|
@ -339,7 +339,7 @@ namespace HeavenStudio.Games
|
||||||
instance.hostRightArmAnim.DoScaledAnimationAsync("HostPrepare", 0.5f);
|
instance.hostRightArmAnim.DoScaledAnimationAsync("HostPrepare", 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartInterval(float beat, float interval)
|
public void StartInterval(double beat, float interval)
|
||||||
{
|
{
|
||||||
if (!intervalStarted)
|
if (!intervalStarted)
|
||||||
{
|
{
|
||||||
|
@ -360,7 +360,7 @@ namespace HeavenStudio.Games
|
||||||
intervalStarted = true;
|
intervalStarted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PassTurn(float beat, float length, bool timeUpSound, bool consecutive, bool visualClock, int audioClock)
|
public void PassTurn(double beat, float length, bool timeUpSound, bool consecutive, bool visualClock, int audioClock)
|
||||||
{
|
{
|
||||||
if (queuedInputs.Count == 0) return;
|
if (queuedInputs.Count == 0) return;
|
||||||
if (shouldPrepareArms)
|
if (shouldPrepareArms)
|
||||||
|
@ -392,7 +392,7 @@ namespace HeavenStudio.Games
|
||||||
float timeUpBeat = 0f;
|
float timeUpBeat = 0f;
|
||||||
if (audioClock == (int)ClockAudio.Both || audioClock == (int)ClockAudio.Start)
|
if (audioClock == (int)ClockAudio.Both || audioClock == (int)ClockAudio.Start)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("quizShow/timerStart");
|
SoundByte.PlayOneShotGame("quizShow/timerStart");
|
||||||
timeUpBeat = 0.5f;
|
timeUpBeat = 0.5f;
|
||||||
}
|
}
|
||||||
if (audioClock == (int)ClockAudio.End) timeUpBeat = 0.5f;
|
if (audioClock == (int)ClockAudio.End) timeUpBeat = 0.5f;
|
||||||
|
@ -403,7 +403,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (!consecutive)
|
if (!consecutive)
|
||||||
{
|
{
|
||||||
if (audioClock == (int)ClockAudio.Both || audioClock == (int)ClockAudio.End) Jukebox.PlayOneShotGame("quizShow/timerStop");
|
if (audioClock == (int)ClockAudio.Both || audioClock == (int)ClockAudio.End) SoundByte.PlayOneShotGame("quizShow/timerStop");
|
||||||
contesteeLeftArmAnim.DoScaledAnimationAsync("LeftRest", 0.5f);
|
contesteeLeftArmAnim.DoScaledAnimationAsync("LeftRest", 0.5f);
|
||||||
contesteeRightArmAnim.DoScaledAnimationAsync("RightRest", 0.5f);
|
contesteeRightArmAnim.DoScaledAnimationAsync("RightRest", 0.5f);
|
||||||
shouldPrepareArms = true;
|
shouldPrepareArms = true;
|
||||||
|
@ -411,7 +411,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
new BeatAction.Action(beat + length + beatInterval + timeUpBeat, delegate { if (timeUpSound && !consecutive) Jukebox.PlayOneShotGame("quizShow/timeUp"); })
|
new BeatAction.Action(beat + length + beatInterval + timeUpBeat, delegate { if (timeUpSound && !consecutive) SoundByte.PlayOneShotGame("quizShow/timeUp"); })
|
||||||
});
|
});
|
||||||
foreach (var input in queuedInputs)
|
foreach (var input in queuedInputs)
|
||||||
{
|
{
|
||||||
|
@ -443,12 +443,12 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
if (dpad)
|
if (dpad)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("quizShow/contestantDPad");
|
SoundByte.PlayOneShotGame("quizShow/contestantDPad");
|
||||||
contesteeLeftArmAnim.DoScaledAnimationAsync("LeftArmPress", 0.5f);
|
contesteeLeftArmAnim.DoScaledAnimationAsync("LeftArmPress", 0.5f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("quizShow/contestantA");
|
SoundByte.PlayOneShotGame("quizShow/contestantA");
|
||||||
contesteeRightArmAnim.DoScaledAnimationAsync("RightArmHit", 0.5f);
|
contesteeRightArmAnim.DoScaledAnimationAsync("RightArmHit", 0.5f);
|
||||||
}
|
}
|
||||||
pressCount++;
|
pressCount++;
|
||||||
|
@ -477,7 +477,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
case (int)ShouldExplode.Contestant:
|
case (int)ShouldExplode.Contestant:
|
||||||
if (contExploded) return;
|
if (contExploded) return;
|
||||||
Jukebox.PlayOneShotGame("quizShow/contestantExplode");
|
SoundByte.PlayOneShotGame("quizShow/contestantExplode");
|
||||||
firstDigitSr.color = new Color(1, 1, 1, 0);
|
firstDigitSr.color = new Color(1, 1, 1, 0);
|
||||||
secondDigitSr.color = new Color(1, 1, 1, 0);
|
secondDigitSr.color = new Color(1, 1, 1, 0);
|
||||||
contCounter.sprite = explodedCounter;
|
contCounter.sprite = explodedCounter;
|
||||||
|
@ -486,7 +486,7 @@ namespace HeavenStudio.Games
|
||||||
break;
|
break;
|
||||||
case (int)ShouldExplode.Host:
|
case (int)ShouldExplode.Host:
|
||||||
if (hostExploded) return;
|
if (hostExploded) return;
|
||||||
Jukebox.PlayOneShotGame("quizShow/hostExplode");
|
SoundByte.PlayOneShotGame("quizShow/hostExplode");
|
||||||
hostFirstDigitSr.color = new Color(1, 1, 1, 0);
|
hostFirstDigitSr.color = new Color(1, 1, 1, 0);
|
||||||
hostSecondDigitSr.color = new Color(1, 1, 1, 0);
|
hostSecondDigitSr.color = new Color(1, 1, 1, 0);
|
||||||
hostCounter.sprite = explodedCounter;
|
hostCounter.sprite = explodedCounter;
|
||||||
|
@ -495,7 +495,7 @@ namespace HeavenStudio.Games
|
||||||
break;
|
break;
|
||||||
case (int)ShouldExplode.Sign:
|
case (int)ShouldExplode.Sign:
|
||||||
if (signExploded) return;
|
if (signExploded) return;
|
||||||
Jukebox.PlayOneShotGame("quizShow/signExplode");
|
SoundByte.PlayOneShotGame("quizShow/signExplode");
|
||||||
signExploded = true;
|
signExploded = true;
|
||||||
signExplosion.Play();
|
signExplosion.Play();
|
||||||
signAnim.Play("Exploded", 0, 0);
|
signAnim.Play("Exploded", 0, 0);
|
||||||
|
@ -503,14 +503,14 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RevealAnswer(float beat, float length)
|
public void RevealAnswer(double beat, float length)
|
||||||
{
|
{
|
||||||
blackOut.SetActive(true);
|
blackOut.SetActive(true);
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat + length, delegate
|
new BeatAction.Action(beat + length, delegate
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("quizShow/answerReveal");
|
SoundByte.PlayOneShotGame("quizShow/answerReveal");
|
||||||
hostFirstDigitSr.sprite = hostNumberSprites[GetSpecificDigit(countToMatch, 1)];
|
hostFirstDigitSr.sprite = hostNumberSprites[GetSpecificDigit(countToMatch, 1)];
|
||||||
hostSecondDigitSr.sprite = hostNumberSprites[GetSpecificDigit(countToMatch, 2)];
|
hostSecondDigitSr.sprite = hostNumberSprites[GetSpecificDigit(countToMatch, 2)];
|
||||||
})
|
})
|
||||||
|
@ -523,26 +523,26 @@ namespace HeavenStudio.Games
|
||||||
blackOut.SetActive(false);
|
blackOut.SetActive(false);
|
||||||
if (revealAnswer)
|
if (revealAnswer)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("quizShow/answerReveal");
|
SoundByte.PlayOneShotGame("quizShow/answerReveal");
|
||||||
hostFirstDigitSr.sprite = hostNumberSprites[GetSpecificDigit(countToMatch, 1)];
|
hostFirstDigitSr.sprite = hostNumberSprites[GetSpecificDigit(countToMatch, 1)];
|
||||||
hostSecondDigitSr.sprite = hostNumberSprites[GetSpecificDigit(countToMatch, 2)];
|
hostSecondDigitSr.sprite = hostNumberSprites[GetSpecificDigit(countToMatch, 2)];
|
||||||
}
|
}
|
||||||
if (pressCount == countToMatch)
|
if (pressCount == countToMatch)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("quizShow/correct");
|
SoundByte.PlayOneShotGame("quizShow/correct");
|
||||||
contesteeHead.Play("ContesteeSmile", -1, 0);
|
contesteeHead.Play("ContesteeSmile", -1, 0);
|
||||||
hostHead.Play("HostSmile", -1, 0);
|
hostHead.Play("HostSmile", -1, 0);
|
||||||
if (audience) Jukebox.PlayOneShotGame("quizShow/audienceCheer");
|
if (audience) SoundByte.PlayOneShotGame("quizShow/audienceCheer");
|
||||||
if (jingle) Jukebox.PlayOneShotGame("quizShow/correctJingle");
|
if (jingle) SoundByte.PlayOneShotGame("quizShow/correctJingle");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ScoreMiss();
|
ScoreMiss();
|
||||||
Jukebox.PlayOneShotGame("quizShow/incorrect");
|
SoundByte.PlayOneShotGame("quizShow/incorrect");
|
||||||
contesteeHead.Play("ContesteeSad", -1, 0);
|
contesteeHead.Play("ContesteeSad", -1, 0);
|
||||||
hostHead.Play("HostSad", -1, 0);
|
hostHead.Play("HostSad", -1, 0);
|
||||||
if (audience) Jukebox.PlayOneShotGame("quizShow/audienceSad");
|
if (audience) SoundByte.PlayOneShotGame("quizShow/audienceSad");
|
||||||
if (jingle) Jukebox.PlayOneShotGame("quizShow/incorrectJingle");
|
if (jingle) SoundByte.PlayOneShotGame("quizShow/incorrectJingle");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace HeavenStudio.Games.Scripts_RhythmRally
|
||||||
{
|
{
|
||||||
game.served = false;
|
game.served = false;
|
||||||
|
|
||||||
var hitBeat = cond.songPositionInBeats;
|
var hitBeat = cond.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
var bounceBeat = game.serveBeat + game.targetBeat + 1f;
|
var bounceBeat = game.serveBeat + game.targetBeat + 1f;
|
||||||
|
|
||||||
|
@ -60,12 +60,12 @@ namespace HeavenStudio.Games.Scripts_RhythmRally
|
||||||
void NearMiss(float state)
|
void NearMiss(float state)
|
||||||
{
|
{
|
||||||
MissBall();
|
MissBall();
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
playerAnim.DoScaledAnimationAsync("Swing", 0.5f); ;
|
playerAnim.DoScaledAnimationAsync("Swing", 0.5f); ;
|
||||||
|
|
||||||
game.missCurve.KeyPoints[0].Position = game.ball.transform.position;
|
game.missCurve.KeyPoints[0].Position = game.ball.transform.position;
|
||||||
game.missCurve.transform.localScale = new Vector3(-state, 1f, 1f);
|
game.missCurve.transform.localScale = new Vector3(-state, 1f, 1f);
|
||||||
game.missBeat = cond.songPositionInBeats;
|
game.missBeat = cond.songPositionInBeatsAsDouble;
|
||||||
game.ball.SetActive(true);
|
game.ball.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ namespace HeavenStudio.Games.Scripts_RhythmRally
|
||||||
MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("rhythmRally/Whistle", whistleBeat) });
|
MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("rhythmRally/Whistle", whistleBeat) });
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BounceFX(float bounceBeat)
|
public void BounceFX(double bounceBeat)
|
||||||
{
|
{
|
||||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
|
|
@ -141,10 +141,10 @@ namespace HeavenStudio.Games
|
||||||
public bool missed;
|
public bool missed;
|
||||||
public bool served;
|
public bool served;
|
||||||
public bool tossing;
|
public bool tossing;
|
||||||
public float serveBeat;
|
public double serveBeat;
|
||||||
public float targetBeat;
|
public double targetBeat;
|
||||||
public float tossBeat;
|
public double tossBeat;
|
||||||
public float missBeat;
|
public double missBeat;
|
||||||
public float tossLength;
|
public float tossLength;
|
||||||
private bool inPose;
|
private bool inPose;
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ namespace HeavenStudio.Games
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
var currentBeat = cond.songPositionInBeats;
|
var currentBeat = cond.songPositionInBeatsAsDouble;
|
||||||
|
|
||||||
var hitBeat = serveBeat; // Beat when the last paddler hit the ball
|
var hitBeat = serveBeat; // Beat when the last paddler hit the ball
|
||||||
var beatDur1 = 1f; // From paddle to table
|
var beatDur1 = 1f; // From paddle to table
|
||||||
|
@ -280,7 +280,7 @@ namespace HeavenStudio.Games
|
||||||
// Check if the opponent should swing.
|
// Check if the opponent should swing.
|
||||||
if (!served && timeBeforeNextHit <= 0f)
|
if (!served && timeBeforeNextHit <= 0f)
|
||||||
{
|
{
|
||||||
var rallies = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "rhythmRally/rally" || c.datamodel == "rhythmRally/slow rally");
|
var rallies = GameManager.instance.Beatmap.Entities.FindAll(c => c.datamodel == "rhythmRally/rally" || c.datamodel == "rhythmRally/slow rally");
|
||||||
for (int i = 0; i < rallies.Count; i++)
|
for (int i = 0; i < rallies.Count; i++)
|
||||||
{
|
{
|
||||||
var rally = rallies[i];
|
var rally = rallies[i];
|
||||||
|
@ -367,7 +367,7 @@ namespace HeavenStudio.Games
|
||||||
GameCamera.additionalFoV = cameraFOV;
|
GameCamera.additionalFoV = cameraFOV;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bop(float beat, float length, bool bop, bool bopAuto)
|
public void Bop(double beat, float length, bool bop, bool bopAuto)
|
||||||
{
|
{
|
||||||
goBop = bopAuto;
|
goBop = bopAuto;
|
||||||
if (bop)
|
if (bop)
|
||||||
|
@ -399,7 +399,7 @@ namespace HeavenStudio.Games
|
||||||
opponentAnim.DoScaledAnimationAsync("Beat", 0.5f);
|
opponentAnim.DoScaledAnimationAsync("Beat", 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Serve(float beat, RallySpeed speed)
|
public void Serve(double beat, RallySpeed speed)
|
||||||
{
|
{
|
||||||
if (!ball.activeSelf)
|
if (!ball.activeSelf)
|
||||||
ball.SetActive(true);
|
ball.SetActive(true);
|
||||||
|
@ -416,7 +416,7 @@ namespace HeavenStudio.Games
|
||||||
serveBeat = beat;
|
serveBeat = beat;
|
||||||
rallySpeed = speed;
|
rallySpeed = speed;
|
||||||
|
|
||||||
var bounceBeat = 0f;
|
double bounceBeat = 0f;
|
||||||
|
|
||||||
switch (rallySpeed)
|
switch (rallySpeed)
|
||||||
{
|
{
|
||||||
|
@ -442,7 +442,7 @@ namespace HeavenStudio.Games
|
||||||
ScheduleInput(serveBeat, targetBeat, InputType.STANDARD_DOWN, paddlers.Just, paddlers.Miss, paddlers.Out);
|
ScheduleInput(serveBeat, targetBeat, InputType.STANDARD_DOWN, paddlers.Just, paddlers.Miss, paddlers.Out);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Toss(float beat, float length, float height, bool firstToss = false)
|
public void Toss(double beat, float length, float height, bool firstToss = false)
|
||||||
{
|
{
|
||||||
// Hide trail while tossing to prevent weirdness while teleporting ball.
|
// Hide trail while tossing to prevent weirdness while teleporting ball.
|
||||||
ballTrail.gameObject.SetActive(false);
|
ballTrail.gameObject.SetActive(false);
|
||||||
|
@ -464,7 +464,7 @@ namespace HeavenStudio.Games
|
||||||
ball.SetActive(true);
|
ball.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TossUpdate(float beat, float duration)
|
private void TossUpdate(double beat, float duration)
|
||||||
{
|
{
|
||||||
var tossPosition = Conductor.instance.GetPositionFromBeat(beat, duration);
|
var tossPosition = Conductor.instance.GetPositionFromBeat(beat, duration);
|
||||||
ball.transform.position = tossCurve.GetPoint(Mathf.Clamp(tossPosition, 0, 1));
|
ball.transform.position = tossCurve.GetPoint(Mathf.Clamp(tossPosition, 0, 1));
|
||||||
|
@ -473,7 +473,7 @@ namespace HeavenStudio.Games
|
||||||
ball.SetActive(false);
|
ball.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PlayWhistle(float beat)
|
public static void PlayWhistle(double beat)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[]
|
MultiSound.Play(new MultiSound.Sound[]
|
||||||
{
|
{
|
||||||
|
@ -496,7 +496,7 @@ namespace HeavenStudio.Games
|
||||||
cameraPivot.DOScale(camZoom, len).SetEase(ease);
|
cameraPivot.DOScale(camZoom, len).SetEase(ease);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PrepareFastRally(float beat, RallySpeed speedChange, bool muteAudio = false)
|
public void PrepareFastRally(double beat, RallySpeed speedChange, bool muteAudio = false)
|
||||||
{
|
{
|
||||||
if (speedChange == RallySpeed.Fast)
|
if (speedChange == RallySpeed.Fast)
|
||||||
{
|
{
|
||||||
|
@ -517,7 +517,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void TonkTinkTonkStretchable(float beat, float length)
|
public static void TonkTinkTonkStretchable(double beat, float length)
|
||||||
{
|
{
|
||||||
List<MultiSound.Sound> soundsToPlay = new List<MultiSound.Sound>();
|
List<MultiSound.Sound> soundsToPlay = new List<MultiSound.Sound>();
|
||||||
bool tink = false;
|
bool tink = false;
|
||||||
|
@ -529,13 +529,13 @@ namespace HeavenStudio.Games
|
||||||
MultiSound.Play(soundsToPlay.ToArray(), forcePlay: true);
|
MultiSound.Play(soundsToPlay.ToArray(), forcePlay: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SuperFastRallyStretchable(float beat, float length)
|
public void SuperFastRallyStretchable(double beat, float length)
|
||||||
{
|
{
|
||||||
List<BeatAction.Action> servesToPerform = new List<BeatAction.Action>();
|
List<BeatAction.Action> servesToPerform = new List<BeatAction.Action>();
|
||||||
|
|
||||||
for (int i = 0; i < length; i += 2)
|
for (int i = 0; i < length; i += 2)
|
||||||
{
|
{
|
||||||
float beatToSpawn = beat + i;
|
double beatToSpawn = beat + i;
|
||||||
servesToPerform.Add( new BeatAction.Action(beatToSpawn, delegate { Serve(beatToSpawn, RallySpeed.SuperFast); }) );
|
servesToPerform.Add( new BeatAction.Action(beatToSpawn, delegate { Serve(beatToSpawn, RallySpeed.SuperFast); }) );
|
||||||
}
|
}
|
||||||
BeatAction.New(gameObject, servesToPerform);
|
BeatAction.New(gameObject, servesToPerform);
|
||||||
|
|
|
@ -95,7 +95,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
if (PlayerInput.Pressed() && !IsExpectingInputNow())
|
if (PlayerInput.Pressed() && !IsExpectingInputNow())
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("rhythmSomen/somen_mistake");
|
SoundByte.PlayOneShotGame("rhythmSomen/somen_mistake");
|
||||||
FrontArm.Play("ArmPluck", -1, 0);
|
FrontArm.Play("ArmPluck", -1, 0);
|
||||||
backArm.Play("BackArmNothing", 0, 0);
|
backArm.Play("BackArmNothing", 0, 0);
|
||||||
hasSlurped = false;
|
hasSlurped = false;
|
||||||
|
@ -104,7 +104,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Slurp(float beat)
|
public void Slurp(double beat)
|
||||||
{
|
{
|
||||||
if (!missed)
|
if (!missed)
|
||||||
{
|
{
|
||||||
|
@ -125,7 +125,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ToggleBop(float beat, float length, bool bopOrNah, bool autoBop)
|
public void ToggleBop(double beat, float length, bool bopOrNah, bool autoBop)
|
||||||
{
|
{
|
||||||
shouldBop = autoBop;
|
shouldBop = autoBop;
|
||||||
if (bopOrNah)
|
if (bopOrNah)
|
||||||
|
@ -143,7 +143,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoFarCrane(float beat)
|
public void DoFarCrane(double beat)
|
||||||
{
|
{
|
||||||
//Far Drop Multisound
|
//Far Drop Multisound
|
||||||
ScheduleInput(beat, 3f, InputType.STANDARD_DOWN, CatchSuccess, CatchMiss, CatchEmpty);
|
ScheduleInput(beat, 3f, InputType.STANDARD_DOWN, CatchSuccess, CatchMiss, CatchEmpty);
|
||||||
|
@ -162,7 +162,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoCloseCrane(float beat)
|
public void DoCloseCrane(double beat)
|
||||||
{
|
{
|
||||||
//Close Drop Multisound
|
//Close Drop Multisound
|
||||||
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, CatchSuccess, CatchMiss, CatchEmpty);
|
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, CatchSuccess, CatchMiss, CatchEmpty);
|
||||||
|
@ -181,7 +181,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoBothCrane(float beat)
|
public void DoBothCrane(double beat)
|
||||||
{
|
{
|
||||||
//Both Drop Multisound
|
//Both Drop Multisound
|
||||||
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, CatchSuccess, CatchMiss, CatchEmpty);
|
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, CatchSuccess, CatchMiss, CatchEmpty);
|
||||||
|
@ -205,10 +205,10 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DoBell(float beat)
|
public void DoBell(double beat)
|
||||||
{
|
{
|
||||||
//Bell Sound lol
|
//Bell Sound lol
|
||||||
Jukebox.PlayOneShotGame("rhythmSomen/somen_bell");
|
SoundByte.PlayOneShotGame("rhythmSomen/somen_bell");
|
||||||
|
|
||||||
BeatAction.New(Player, new List<BeatAction.Action>()
|
BeatAction.New(Player, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
|
@ -224,14 +224,14 @@ namespace HeavenStudio.Games
|
||||||
splashEffect.Play();
|
splashEffect.Play();
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("rhythmSomen/somen_splash");
|
SoundByte.PlayOneShotGame("rhythmSomen/somen_splash");
|
||||||
FrontArm.Play("ArmPluckNG", -1, 0);
|
FrontArm.Play("ArmPluckNG", -1, 0);
|
||||||
EffectSweat.Play("BlobSweating", -1, 0);
|
EffectSweat.Play("BlobSweating", -1, 0);
|
||||||
missed = true;
|
missed = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Jukebox.PlayOneShotGame("rhythmSomen/somen_catch");
|
SoundByte.PlayOneShotGame("rhythmSomen/somen_catch");
|
||||||
Jukebox.PlayOneShotGame("rhythmSomen/somen_catch_old", volume: 0.25f);
|
SoundByte.PlayOneShotGame("rhythmSomen/somen_catch_old", volume: 0.25f);
|
||||||
FrontArm.Play("ArmPluckOK", -1, 0);
|
FrontArm.Play("ArmPluckOK", -1, 0);
|
||||||
EffectHit.Play("HitAppear", -1, 0);
|
EffectHit.Play("HitAppear", -1, 0);
|
||||||
missed = false;
|
missed = false;
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
{
|
{
|
||||||
public class Hair : MonoBehaviour
|
public class Hair : MonoBehaviour
|
||||||
{
|
{
|
||||||
public float createBeat;
|
public double createBeat;
|
||||||
public GameObject hairSprite;
|
public GameObject hairSprite;
|
||||||
public GameObject stubbleSprite;
|
public GameObject stubbleSprite;
|
||||||
public GameObject missedSprite;
|
public GameObject missedSprite;
|
||||||
|
@ -21,7 +21,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
tweezers = game.Tweezers;
|
tweezers = game.Tweezers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartInput(float beat, float length)
|
public void StartInput(double beat, double length)
|
||||||
{
|
{
|
||||||
game.ScheduleInput(beat, length, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, Just, Miss, Out);
|
game.ScheduleInput(beat, length, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, Just, Miss, Out);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
{
|
{
|
||||||
public class LongHair : MonoBehaviour
|
public class LongHair : MonoBehaviour
|
||||||
{
|
{
|
||||||
public float createBeat;
|
public double createBeat;
|
||||||
public GameObject hairSprite;
|
public GameObject hairSprite;
|
||||||
public GameObject stubbleSprite;
|
public GameObject stubbleSprite;
|
||||||
private RhythmTweezers game;
|
private RhythmTweezers game;
|
||||||
|
@ -22,7 +22,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
|
|
||||||
private Sound pullSound;
|
private Sound pullSound;
|
||||||
|
|
||||||
private float inputBeat;
|
private double inputBeat;
|
||||||
|
|
||||||
PlayerActionEvent endEvent;
|
PlayerActionEvent endEvent;
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
tweezers = game.Tweezers;
|
tweezers = game.Tweezers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartInput(float beat, float length)
|
public void StartInput(double beat, double length)
|
||||||
{
|
{
|
||||||
inputBeat = beat + length;
|
inputBeat = beat + length;
|
||||||
game.ScheduleInput(beat, length, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, StartJust, StartMiss, Out);
|
game.ScheduleInput(beat, length, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, StartJust, StartMiss, Out);
|
||||||
|
@ -94,7 +94,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
pluckState = -1;
|
pluckState = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pullSound = Jukebox.PlayOneShotGame($"rhythmTweezers/longPull{UnityEngine.Random.Range(1, 5)}");
|
pullSound = SoundByte.PlayOneShotGame($"rhythmTweezers/longPull{UnityEngine.Random.Range(1, 5)}");
|
||||||
pluckState = 1;
|
pluckState = 1;
|
||||||
endEvent = game.ScheduleInput(inputBeat, 0.5f, InputType.STANDARD_UP | InputType.DIRECTION_DOWN_UP, EndJust, Out, Out);
|
endEvent = game.ScheduleInput(inputBeat, 0.5f, InputType.STANDARD_UP | InputType.DIRECTION_DOWN_UP, EndJust, Out, Out);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
{
|
{
|
||||||
public class NoPeekingSign : MonoBehaviour
|
public class NoPeekingSign : MonoBehaviour
|
||||||
{
|
{
|
||||||
private float peekBeat = -1;
|
private double peekBeat = -1;
|
||||||
private bool peekRising;
|
private bool peekRising;
|
||||||
private bool shouldDelete;
|
private bool shouldDelete;
|
||||||
private Animator anim;
|
private Animator anim;
|
||||||
|
@ -22,7 +22,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
sr = GetComponent<SpriteRenderer>();
|
sr = GetComponent<SpriteRenderer>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(float beat, float length, int type)
|
public void Init(double beat, float length, int type)
|
||||||
{
|
{
|
||||||
peekBeat = beat - 1;
|
peekBeat = beat - 1;
|
||||||
peekRising = true;
|
peekRising = true;
|
||||||
|
|
|
@ -152,7 +152,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
private struct QueuedPeek
|
private struct QueuedPeek
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public float length;
|
public float length;
|
||||||
public int type;
|
public int type;
|
||||||
}
|
}
|
||||||
|
@ -174,8 +174,8 @@ namespace HeavenStudio.Games
|
||||||
[NonSerialized] public int hairsLeft = 0;
|
[NonSerialized] public int hairsLeft = 0;
|
||||||
|
|
||||||
[Header("Variables")]
|
[Header("Variables")]
|
||||||
private float passTurnBeat;
|
private double passTurnBeat;
|
||||||
private float passTurnEndBeat = 2;
|
private double passTurnEndBeat = 2;
|
||||||
private static List<QueuedPeek> queuedPeeks = new List<QueuedPeek>();
|
private static List<QueuedPeek> queuedPeeks = new List<QueuedPeek>();
|
||||||
|
|
||||||
[Header("Sprites")]
|
[Header("Sprites")]
|
||||||
|
@ -226,7 +226,7 @@ namespace HeavenStudio.Games
|
||||||
private List<Hair> spawnedHairs = new List<Hair>();
|
private List<Hair> spawnedHairs = new List<Hair>();
|
||||||
private List<LongHair> spawnedLongs = new List<LongHair>();
|
private List<LongHair> spawnedLongs = new List<LongHair>();
|
||||||
|
|
||||||
private static List<float> passedTurns = new List<float>();
|
private static List<double> passedTurns = new();
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
|
@ -245,7 +245,7 @@ namespace HeavenStudio.Games
|
||||||
spawnedHairs.Add(hair);
|
spawnedHairs.Add(hair);
|
||||||
hair.gameObject.SetActive(true);
|
hair.gameObject.SetActive(true);
|
||||||
hair.GetComponent<Animator>().Play("SmallAppear", 0, 1);
|
hair.GetComponent<Animator>().Play("SmallAppear", 0, 1);
|
||||||
float rot = -58f + 116 * Mathp.Normalize(crEvent.relativeBeat, 0, crHandlerInstance.intervalLength - 1);
|
float rot = -58f + 116 * Mathp.Normalize((float)crEvent.relativeBeat, 0, crHandlerInstance.intervalLength - 1);
|
||||||
hair.transform.eulerAngles = new Vector3(0, 0, rot);
|
hair.transform.eulerAngles = new Vector3(0, 0, rot);
|
||||||
hair.createBeat = crEvent.beat;
|
hair.createBeat = crEvent.beat;
|
||||||
}
|
}
|
||||||
|
@ -255,7 +255,7 @@ namespace HeavenStudio.Games
|
||||||
spawnedLongs.Add(hair);
|
spawnedLongs.Add(hair);
|
||||||
hair.gameObject.SetActive(true);
|
hair.gameObject.SetActive(true);
|
||||||
hair.GetComponent<Animator>().Play("LongAppear", 0, 1);
|
hair.GetComponent<Animator>().Play("LongAppear", 0, 1);
|
||||||
float rot = -58f + 116 * Mathp.Normalize(crEvent.relativeBeat, 0, crHandlerInstance.intervalLength - 1);
|
float rot = -58f + 116 * Mathp.Normalize((float)crEvent.relativeBeat, 0, crHandlerInstance.intervalLength - 1);
|
||||||
hair.transform.eulerAngles = new Vector3(0, 0, rot);
|
hair.transform.eulerAngles = new Vector3(0, 0, rot);
|
||||||
hair.createBeat = crEvent.beat;
|
hair.createBeat = crEvent.beat;
|
||||||
}
|
}
|
||||||
|
@ -275,7 +275,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SpawnHairInactive(float beat)
|
public static void SpawnHairInactive(double beat)
|
||||||
{
|
{
|
||||||
if (crHandlerInstance == null)
|
if (crHandlerInstance == null)
|
||||||
{
|
{
|
||||||
|
@ -285,7 +285,7 @@ namespace HeavenStudio.Games
|
||||||
crHandlerInstance.AddEvent(beat, 0, "Hair");
|
crHandlerInstance.AddEvent(beat, 0, "Hair");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SpawnLongHairInactive(float beat)
|
public static void SpawnLongHairInactive(double beat)
|
||||||
{
|
{
|
||||||
if (crHandlerInstance == null)
|
if (crHandlerInstance == null)
|
||||||
{
|
{
|
||||||
|
@ -295,7 +295,7 @@ namespace HeavenStudio.Games
|
||||||
crHandlerInstance.AddEvent(beat, 0.5f, "Long");
|
crHandlerInstance.AddEvent(beat, 0.5f, "Long");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnHair(float beat)
|
public void SpawnHair(double beat)
|
||||||
{
|
{
|
||||||
if (crHandlerInstance.queuedEvents.Count > 0 && crHandlerInstance.queuedEvents.Find(x => x.beat == beat || (beat >= x.beat && beat <= x.beat + x.length)) != null) return;
|
if (crHandlerInstance.queuedEvents.Count > 0 && crHandlerInstance.queuedEvents.Find(x => x.beat == beat || (beat >= x.beat && beat <= x.beat + x.length)) != null) return;
|
||||||
// End transition early if the next hair is a lil early.
|
// End transition early if the next hair is a lil early.
|
||||||
|
@ -303,7 +303,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
crHandlerInstance.AddEvent(beat, 0, "Hair");
|
crHandlerInstance.AddEvent(beat, 0, "Hair");
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("rhythmTweezers/shortAppear", beat);
|
SoundByte.PlayOneShotGame("rhythmTweezers/shortAppear", beat);
|
||||||
Hair hair = Instantiate(hairBase, HairsHolder.transform).GetComponent<Hair>();
|
Hair hair = Instantiate(hairBase, HairsHolder.transform).GetComponent<Hair>();
|
||||||
spawnedHairs.Add(hair);
|
spawnedHairs.Add(hair);
|
||||||
hair.gameObject.SetActive(true);
|
hair.gameObject.SetActive(true);
|
||||||
|
@ -314,14 +314,14 @@ namespace HeavenStudio.Games
|
||||||
hair.createBeat = beat;
|
hair.createBeat = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnLongHair(float beat)
|
public void SpawnLongHair(double beat)
|
||||||
{
|
{
|
||||||
if (crHandlerInstance.queuedEvents.Count > 0 && crHandlerInstance.queuedEvents.Find(x => x.beat == beat || (beat >= x.beat && beat <= x.beat + x.length)) != null) return;
|
if (crHandlerInstance.queuedEvents.Count > 0 && crHandlerInstance.queuedEvents.Find(x => x.beat == beat || (beat >= x.beat && beat <= x.beat + x.length)) != null) return;
|
||||||
StopTransitionIfActive();
|
StopTransitionIfActive();
|
||||||
|
|
||||||
crHandlerInstance.AddEvent(beat, 0.5f, "Long");
|
crHandlerInstance.AddEvent(beat, 0.5f, "Long");
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("rhythmTweezers/longAppear", beat);
|
SoundByte.PlayOneShotGame("rhythmTweezers/longAppear", beat);
|
||||||
LongHair hair = Instantiate(longHairBase, HairsHolder.transform).GetComponent<LongHair>();
|
LongHair hair = Instantiate(longHairBase, HairsHolder.transform).GetComponent<LongHair>();
|
||||||
spawnedLongs.Add(hair);
|
spawnedLongs.Add(hair);
|
||||||
hair.gameObject.SetActive(true);
|
hair.gameObject.SetActive(true);
|
||||||
|
@ -332,7 +332,7 @@ namespace HeavenStudio.Games
|
||||||
hair.createBeat = beat;
|
hair.createBeat = beat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetIntervalStart(float beat, float interval = 4f)
|
public void SetIntervalStart(double beat, float interval = 4f)
|
||||||
{
|
{
|
||||||
StopTransitionIfActive();
|
StopTransitionIfActive();
|
||||||
hairsLeft = 0;
|
hairsLeft = 0;
|
||||||
|
@ -340,7 +340,7 @@ namespace HeavenStudio.Games
|
||||||
crHandlerInstance.StartInterval(beat, interval);
|
crHandlerInstance.StartInterval(beat, interval);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InactiveInterval(float beat, float interval)
|
public static void InactiveInterval(double beat, float interval)
|
||||||
{
|
{
|
||||||
if (crHandlerInstance == null)
|
if (crHandlerInstance == null)
|
||||||
{
|
{
|
||||||
|
@ -349,7 +349,7 @@ namespace HeavenStudio.Games
|
||||||
crHandlerInstance.StartInterval(beat, interval);
|
crHandlerInstance.StartInterval(beat, interval);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PassTurn(float beat, float length)
|
public void PassTurn(double beat, float length)
|
||||||
{
|
{
|
||||||
if (crHandlerInstance.queuedEvents.Count > 0)
|
if (crHandlerInstance.queuedEvents.Count > 0)
|
||||||
{
|
{
|
||||||
|
@ -371,7 +371,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PrePassTurn(float beat, float length)
|
public static void PrePassTurn(double beat, float length)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame == "rhythmTweezers")
|
if (GameManager.instance.currentGame == "rhythmTweezers")
|
||||||
{
|
{
|
||||||
|
@ -383,7 +383,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetPassTurnValues(float startBeat)
|
private void SetPassTurnValues(double startBeat)
|
||||||
{
|
{
|
||||||
if (crHandlerInstance.intervalLength <= 0) return;
|
if (crHandlerInstance.intervalLength <= 0) return;
|
||||||
passTurnBeat = startBeat - 1f;
|
passTurnBeat = startBeat - 1f;
|
||||||
|
@ -391,11 +391,11 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
|
|
||||||
const float vegDupeOffset = 16.7f;
|
const float vegDupeOffset = 16.7f;
|
||||||
public void NextVegetable(float beat, int type, Color onionColor, Color potatoColor)
|
public void NextVegetable(double beat, int type, Color onionColor, Color potatoColor)
|
||||||
{
|
{
|
||||||
transitioning = true;
|
transitioning = true;
|
||||||
|
|
||||||
Jukebox.PlayOneShotGame("rhythmTweezers/register", beat);
|
SoundByte.PlayOneShotGame("rhythmTweezers/register", beat);
|
||||||
|
|
||||||
Sprite nextVeggieSprite = type == 0 ? onionSprite : potatoSprite;
|
Sprite nextVeggieSprite = type == 0 ? onionSprite : potatoSprite;
|
||||||
Color nextColor = type == 0 ? onionColor : potatoColor;
|
Color nextColor = type == 0 ? onionColor : potatoColor;
|
||||||
|
@ -456,7 +456,7 @@ namespace HeavenStudio.Games
|
||||||
ChangeBackgroundColor(end, beats);
|
ChangeBackgroundColor(end, beats);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PreNoPeeking(float beat, float length, int type)
|
public static void PreNoPeeking(double beat, float length, int type)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame == "rhythmTweezers")
|
if (GameManager.instance.currentGame == "rhythmTweezers")
|
||||||
{
|
{
|
||||||
|
@ -473,7 +473,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void NoPeeking(float beat, float length, int type)
|
public void NoPeeking(double beat, float length, int type)
|
||||||
{
|
{
|
||||||
NoPeekingSign spawnedNoPeekingSign = Instantiate(noPeekingRef, transform);
|
NoPeekingSign spawnedNoPeekingSign = Instantiate(noPeekingRef, transform);
|
||||||
spawnedNoPeekingSign.gameObject.SetActive(true);
|
spawnedNoPeekingSign.gameObject.SetActive(true);
|
||||||
|
@ -509,7 +509,7 @@ namespace HeavenStudio.Games
|
||||||
var tweezerAngle = -180f;
|
var tweezerAngle = -180f;
|
||||||
|
|
||||||
var tweezerTime = Conductor.instance.songPositionInBeats;
|
var tweezerTime = Conductor.instance.songPositionInBeats;
|
||||||
var unclampedAngle = -58f + 116 * Mathp.Normalize(tweezerTime, passTurnBeat + 1f, passTurnEndBeat - 1f);
|
var unclampedAngle = -58f + 116 * Mathp.Normalize(tweezerTime, (float)passTurnBeat + 1f, (float)passTurnEndBeat - 1f);
|
||||||
tweezerAngle = Mathf.Clamp(unclampedAngle, -180f, 180f);
|
tweezerAngle = Mathf.Clamp(unclampedAngle, -180f, 180f);
|
||||||
|
|
||||||
Tweezers.transform.eulerAngles = new Vector3(0, 0, tweezerAngle);
|
Tweezers.transform.eulerAngles = new Vector3(0, 0, tweezerAngle);
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
|
|
||||||
if (ace)
|
if (ace)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame($"rhythmTweezers/shortPluck{UnityEngine.Random.Range(1, 21)}");
|
SoundByte.PlayOneShotGame($"rhythmTweezers/shortPluck{UnityEngine.Random.Range(1, 21)}");
|
||||||
|
|
||||||
hair.hairSprite.SetActive(false);
|
hair.hairSprite.SetActive(false);
|
||||||
hair.stubbleSprite.SetActive(true);
|
hair.stubbleSprite.SetActive(true);
|
||||||
|
@ -63,8 +63,8 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame($"rhythmTweezers/shortPluck{UnityEngine.Random.Range(1, 21)}");
|
SoundByte.PlayOneShotGame($"rhythmTweezers/shortPluck{UnityEngine.Random.Range(1, 21)}");
|
||||||
Jukebox.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
|
|
||||||
hair.hairSprite.SetActive(false);
|
hair.hairSprite.SetActive(false);
|
||||||
hair.missedSprite.SetActive(true);
|
hair.missedSprite.SetActive(true);
|
||||||
|
@ -84,7 +84,7 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
||||||
|
|
||||||
if (ace)
|
if (ace)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("rhythmTweezers/longPullEnd");
|
SoundByte.PlayOneShotGame("rhythmTweezers/longPullEnd");
|
||||||
|
|
||||||
hair.hairSprite.SetActive(false);
|
hair.hairSprite.SetActive(false);
|
||||||
hair.stubbleSprite.SetActive(true);
|
hair.stubbleSprite.SetActive(true);
|
||||||
|
|
|
@ -3,6 +3,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
|
using Jukebox;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Loaders
|
namespace HeavenStudio.Games.Loaders
|
||||||
{
|
{
|
||||||
|
@ -41,7 +42,7 @@ namespace HeavenStudio.Games.Loaders
|
||||||
new Param("variant", Ringside.PoseForTheFansVariant.Random, "Variant", "Which variant of the cue do you wish to play."),
|
new Param("variant", Ringside.PoseForTheFansVariant.Random, "Variant", "Which variant of the cue do you wish to play."),
|
||||||
new Param("keepZoomedOut", false, "Keep Zoomed Out", "Whether the camera should keep being zoomed out after the event has completed."),
|
new Param("keepZoomedOut", false, "Keep Zoomed Out", "Whether the camera should keep being zoomed out after the event has completed."),
|
||||||
new Param("newspaperBeats", new EntityTypes.Float(0, 80, 0), "Newspaper Beats", "How many beats should the newspaper stay for?"),
|
new Param("newspaperBeats", new EntityTypes.Float(0, 80, 0), "Newspaper Beats", "How many beats should the newspaper stay for?"),
|
||||||
new Param("ease", EasingFunction.Ease.EaseOutQuad, "Camera Ease", "What ease should the camera use?"),
|
new Param("ease", Util.EasingFunction.Ease.EaseOutQuad, "Camera Ease", "What ease should the camera use?"),
|
||||||
},
|
},
|
||||||
defaultLength = 4f
|
defaultLength = 4f
|
||||||
},
|
},
|
||||||
|
@ -119,7 +120,7 @@ namespace HeavenStudio.Games
|
||||||
public static List<QueuedPose> queuedPoses = new List<QueuedPose>();
|
public static List<QueuedPose> queuedPoses = new List<QueuedPose>();
|
||||||
public struct QueuedPose
|
public struct QueuedPose
|
||||||
{
|
{
|
||||||
public float beat;
|
public double beat;
|
||||||
public bool keepZoomedOut;
|
public bool keepZoomedOut;
|
||||||
public float newspaperBeats;
|
public float newspaperBeats;
|
||||||
}
|
}
|
||||||
|
@ -149,12 +150,12 @@ namespace HeavenStudio.Games
|
||||||
private bool keepZoomOut;
|
private bool keepZoomOut;
|
||||||
private Sound kidsLaugh;
|
private Sound kidsLaugh;
|
||||||
private int currentPose;
|
private int currentPose;
|
||||||
private EasingFunction.Ease lastEase;
|
private Util.EasingFunction.Ease lastEase;
|
||||||
private GameObject currentNewspaper;
|
private GameObject currentNewspaper;
|
||||||
|
|
||||||
private int currentZoomIndex;
|
private int currentZoomIndex;
|
||||||
|
|
||||||
private List<DynamicBeatmap.DynamicEntity> allCameraEvents = new List<DynamicBeatmap.DynamicEntity>();
|
private List<RiqEntity> allCameraEvents = new List<RiqEntity>();
|
||||||
|
|
||||||
public GameEvent bop = new GameEvent();
|
public GameEvent bop = new GameEvent();
|
||||||
|
|
||||||
|
@ -163,7 +164,7 @@ namespace HeavenStudio.Games
|
||||||
void OnDestroy()
|
void OnDestroy()
|
||||||
{
|
{
|
||||||
if (queuedPoses.Count > 0) queuedPoses.Clear();
|
if (queuedPoses.Count > 0) queuedPoses.Clear();
|
||||||
Jukebox.KillLoop(kidsLaugh, 2f);
|
SoundByte.KillLoop(kidsLaugh, 2f);
|
||||||
foreach (var evt in scheduledInputs)
|
foreach (var evt in scheduledInputs)
|
||||||
{
|
{
|
||||||
evt.Disable();
|
evt.Disable();
|
||||||
|
@ -179,10 +180,10 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
instance = this;
|
instance = this;
|
||||||
var camEvents = EventCaller.GetAllInGameManagerList("ringside", new string[] { "poseForTheFans" });
|
var camEvents = EventCaller.GetAllInGameManagerList("ringside", new string[] { "poseForTheFans" });
|
||||||
List<DynamicBeatmap.DynamicEntity> tempEvents = new List<DynamicBeatmap.DynamicEntity>();
|
List<RiqEntity> tempEvents = new List<RiqEntity>();
|
||||||
for (int i = 0; i < camEvents.Count; i++)
|
for (int i = 0; i < camEvents.Count; i++)
|
||||||
{
|
{
|
||||||
if (camEvents[i].beat + camEvents[i].beat >= Conductor.instance.songPositionInBeats)
|
if (camEvents[i].beat + camEvents[i].beat >= Conductor.instance.songPositionInBeatsAsDouble)
|
||||||
{
|
{
|
||||||
tempEvents.Add(camEvents[i]);
|
tempEvents.Add(camEvents[i]);
|
||||||
}
|
}
|
||||||
|
@ -220,7 +221,7 @@ namespace HeavenStudio.Games
|
||||||
Ringside.instance.ScoreMiss(0.5);
|
Ringside.instance.ScoreMiss(0.5);
|
||||||
|
|
||||||
wrestlerAnim.DoScaledAnimationAsync("YeMiss", 0.25f);
|
wrestlerAnim.DoScaledAnimationAsync("YeMiss", 0.25f);
|
||||||
Jukebox.PlayOneShotGame($"ringside/confusedanswer");
|
SoundByte.PlayOneShotGame($"ringside/confusedanswer");
|
||||||
if (reporterAnim.IsPlayingAnimationName("IdleReporter")) reporterAnim.Play("IdleLate", 0, 0);
|
if (reporterAnim.IsPlayingAnimationName("IdleReporter")) reporterAnim.Play("IdleLate", 0, 0);
|
||||||
}
|
}
|
||||||
if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN) && !shouldNotInput)
|
if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN) && !shouldNotInput)
|
||||||
|
@ -230,12 +231,12 @@ namespace HeavenStudio.Games
|
||||||
int randomPose = UnityEngine.Random.Range(1, 7);
|
int randomPose = UnityEngine.Random.Range(1, 7);
|
||||||
wrestlerAnim.Play($"Pose{randomPose}", 0, 0);
|
wrestlerAnim.Play($"Pose{randomPose}", 0, 0);
|
||||||
reporterAnim.Play("FlinchReporter", 0, 0);
|
reporterAnim.Play("FlinchReporter", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"ringside/yell{UnityEngine.Random.Range(1, 7)}Raw");
|
SoundByte.PlayOneShotGame($"ringside/yell{UnityEngine.Random.Range(1, 7)}Raw");
|
||||||
Jukebox.PlayOneShotGame("ringside/barely");
|
SoundByte.PlayOneShotGame("ringside/barely");
|
||||||
wrestlerTransform.localScale = new Vector3(1.1f, 1.1f, 1f);
|
wrestlerTransform.localScale = new Vector3(1.1f, 1.1f, 1f);
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(cond.songPositionInBeats + 0.1f, delegate { wrestlerTransform.localScale = new Vector3(1f, 1f, 1f); }),
|
new BeatAction.Action(cond.songPositionInBeatsAsDouble + 0.1f, delegate { wrestlerTransform.localScale = new Vector3(1f, 1f, 1f); }),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -243,7 +244,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (currentZoomIndex < allCameraEvents.Count && currentZoomIndex >= 0)
|
if (currentZoomIndex < allCameraEvents.Count && currentZoomIndex >= 0)
|
||||||
{
|
{
|
||||||
if (Conductor.instance.songPositionInBeats >= allCameraEvents[currentZoomIndex].beat)
|
if (Conductor.instance.songPositionInBeatsAsDouble >= allCameraEvents[currentZoomIndex].beat)
|
||||||
{
|
{
|
||||||
UpdateCameraZoom();
|
UpdateCameraZoom();
|
||||||
currentZoomIndex++;
|
currentZoomIndex++;
|
||||||
|
@ -265,7 +266,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EasingFunction.Function func = EasingFunction.GetEasingFunction(lastEase);
|
Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction(lastEase);
|
||||||
float newPosX = func(lastCamPos.x, currentCamPos.x, normalizedBeat);
|
float newPosX = func(lastCamPos.x, currentCamPos.x, normalizedBeat);
|
||||||
float newPosY = func(lastCamPos.y, currentCamPos.y, normalizedBeat);
|
float newPosY = func(lastCamPos.y, currentCamPos.y, normalizedBeat);
|
||||||
float newPosZ = func(lastCamPos.z + 10, currentCamPos.z + 10, normalizedBeat);
|
float newPosZ = func(lastCamPos.z + 10, currentCamPos.z + 10, normalizedBeat);
|
||||||
|
@ -292,7 +293,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ToggleBop(float beat, float length, bool startBopping, bool autoBop)
|
public void ToggleBop(double beat, float length, bool startBopping, bool autoBop)
|
||||||
{
|
{
|
||||||
shouldBop = autoBop;
|
shouldBop = autoBop;
|
||||||
if (startBopping)
|
if (startBopping)
|
||||||
|
@ -332,7 +333,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Question(float beat, bool alt, int questionVariant, float length = 4f)
|
public void Question(double beat, bool alt, int questionVariant, float length = 4f)
|
||||||
{
|
{
|
||||||
if (length <= 2f) return;
|
if (length <= 2f) return;
|
||||||
int currentQuestion = questionVariant;
|
int currentQuestion = questionVariant;
|
||||||
|
@ -366,7 +367,7 @@ namespace HeavenStudio.Games
|
||||||
ThatTrue(beat + totalExtend, currentQuestion);
|
ThatTrue(beat + totalExtend, currentQuestion);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PreQuestion(float beat, int questionVariant, float length = 4f)
|
public void PreQuestion(double beat, int questionVariant, float length = 4f)
|
||||||
{
|
{
|
||||||
if (GameManager.instance.currentGame != "ringside") return;
|
if (GameManager.instance.currentGame != "ringside") return;
|
||||||
if (instance == null) return;
|
if (instance == null) return;
|
||||||
|
@ -382,7 +383,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ThatTrue(float beat, int currentQuestion)
|
public void ThatTrue(double beat, int currentQuestion)
|
||||||
{
|
{
|
||||||
MultiSound.Play(new MultiSound.Sound[]
|
MultiSound.Play(new MultiSound.Sound[]
|
||||||
{
|
{
|
||||||
|
@ -396,7 +397,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BigGuy(float beat, int questionVariant)
|
public void BigGuy(double beat, int questionVariant)
|
||||||
{
|
{
|
||||||
int currentQuestion = questionVariant;
|
int currentQuestion = questionVariant;
|
||||||
if (currentQuestion == (int)QuestionVariant.Random) currentQuestion = UnityEngine.Random.Range(1, 4);
|
if (currentQuestion == (int)QuestionVariant.Random) currentQuestion = UnityEngine.Random.Range(1, 4);
|
||||||
|
@ -420,7 +421,7 @@ namespace HeavenStudio.Games
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PoseForTheFans(float beat, bool and, int variant, bool keepZoomedOut, float newspaperBeats)
|
public static void PoseForTheFans(double beat, bool and, int variant, bool keepZoomedOut, float newspaperBeats)
|
||||||
{
|
{
|
||||||
if (and)
|
if (and)
|
||||||
{
|
{
|
||||||
|
@ -448,7 +449,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void QueuePose(float beat, bool keepZoomedOut, float newspaperBeats)
|
public void QueuePose(double beat, bool keepZoomedOut, float newspaperBeats)
|
||||||
{
|
{
|
||||||
if (newspaperBeats > 0)
|
if (newspaperBeats > 0)
|
||||||
{
|
{
|
||||||
|
@ -496,7 +497,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
wrestlerNewspaperAnim.Play($"Miss{UnityEngine.Random.Range(1, 7)}Newspaper", 0, 0);
|
wrestlerNewspaperAnim.Play($"Miss{UnityEngine.Random.Range(1, 7)}Newspaper", 0, 0);
|
||||||
reporterNewspaperAnim.Play("IdleReporterNewspaper", 0, 0);
|
reporterNewspaperAnim.Play("IdleReporterNewspaper", 0, 0);
|
||||||
kidsLaugh = Jukebox.PlayOneShotGame("ringside/kidslaugh", -1, 1, 1, true);
|
kidsLaugh = SoundByte.PlayOneShotGame("ringside/kidslaugh", -1, 1, 1, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -510,7 +511,7 @@ namespace HeavenStudio.Games
|
||||||
blackVoid.color = new Color(1f, 1f, 1f, 0);
|
blackVoid.color = new Color(1f, 1f, 1f, 0);
|
||||||
Destroy(currentNewspaper); currentNewspaper = null;
|
Destroy(currentNewspaper); currentNewspaper = null;
|
||||||
lastCamPos = new Vector3(0, 0, -10);
|
lastCamPos = new Vector3(0, 0, -10);
|
||||||
Jukebox.KillLoop(kidsLaugh, 0.25f);
|
SoundByte.KillLoop(kidsLaugh, 0.25f);
|
||||||
keepZoomOut = false;
|
keepZoomOut = false;
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
@ -562,7 +563,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
wrestlerNewspaperAnim.Play($"Miss{UnityEngine.Random.Range(1, 7)}Newspaper", 0, 0);
|
wrestlerNewspaperAnim.Play($"Miss{UnityEngine.Random.Range(1, 7)}Newspaper", 0, 0);
|
||||||
reporterNewspaperAnim.Play("IdleReporterNewspaper", 0, 0);
|
reporterNewspaperAnim.Play("IdleReporterNewspaper", 0, 0);
|
||||||
kidsLaugh = Jukebox.PlayOneShotGame("ringside/kidslaugh", -1, 1, 1, true);
|
kidsLaugh = SoundByte.PlayOneShotGame("ringside/kidslaugh", -1, 1, 1, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -575,7 +576,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
blackVoid.color = new Color(1f, 1f, 1f, 0);
|
blackVoid.color = new Color(1f, 1f, 1f, 0);
|
||||||
Destroy(currentNewspaper); currentNewspaper = null;
|
Destroy(currentNewspaper); currentNewspaper = null;
|
||||||
Jukebox.KillLoop(kidsLaugh, 0.25f);
|
SoundByte.KillLoop(kidsLaugh, 0.25f);
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -586,13 +587,13 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (currentZoomIndex < allCameraEvents.Count && currentZoomIndex >= 0)
|
if (currentZoomIndex < allCameraEvents.Count && currentZoomIndex >= 0)
|
||||||
{
|
{
|
||||||
currentZoomCamBeat = allCameraEvents[currentZoomIndex].beat;
|
currentZoomCamBeat = (float)allCameraEvents[currentZoomIndex].beat;
|
||||||
currentCamPos = new Vector3(poseFlash.transform.position.x, poseFlash.transform.position.y, -21.5f);
|
currentCamPos = new Vector3(poseFlash.transform.position.x, poseFlash.transform.position.y, -21.5f);
|
||||||
lastEase = (EasingFunction.Ease)allCameraEvents[currentZoomIndex]["ease"];
|
lastEase = (Util.EasingFunction.Ease)allCameraEvents[currentZoomIndex]["ease"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PoseCheck(float beat)
|
public void PoseCheck(double beat)
|
||||||
{
|
{
|
||||||
ScheduleInput(beat, 2f, InputType.STANDARD_ALT_DOWN, JustPoseForTheFans, MissPose, Nothing);
|
ScheduleInput(beat, 2f, InputType.STANDARD_ALT_DOWN, JustPoseForTheFans, MissPose, Nothing);
|
||||||
}
|
}
|
||||||
|
@ -658,9 +659,9 @@ namespace HeavenStudio.Games
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
wrestlerAnim.DoScaledAnimationAsync("Cough", 0.5f);
|
wrestlerAnim.DoScaledAnimationAsync("Cough", 0.5f);
|
||||||
Jukebox.PlayOneShotGame($"ringside/cough");
|
SoundByte.PlayOneShotGame($"ringside/cough");
|
||||||
reporterAnim.Play("ExtendMiss", 0, 0);
|
reporterAnim.Play("ExtendMiss", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
SoundByte.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("IdleMiss", 0, 0); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("IdleMiss", 0, 0); }),
|
||||||
|
@ -675,10 +676,10 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
wrestlerAnim.DoScaledAnimationAsync("Ye", 0.5f);
|
wrestlerAnim.DoScaledAnimationAsync("Ye", 0.5f);
|
||||||
reporterAnim.Play("ExtendSmile", 0, 0);
|
reporterAnim.Play("ExtendSmile", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"ringside/ye{UnityEngine.Random.Range(1, 4)}");
|
SoundByte.PlayOneShotGame($"ringside/ye{UnityEngine.Random.Range(1, 4)}");
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { Jukebox.PlayOneShotGame("ringside/yeCamera"); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { SoundByte.PlayOneShotGame("ringside/yeCamera"); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { FadeFlashColor(Color.white, new Color(1, 1, 1, 0), 0.5f); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { FadeFlashColor(Color.white, new Color(1, 1, 1, 0), 0.5f); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { flashObject.SetActive(true); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { flashObject.SetActive(true); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("SmileReporter", 0, 0); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("SmileReporter", 0, 0); }),
|
||||||
|
@ -692,7 +693,7 @@ namespace HeavenStudio.Games
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
missedBigGuy = true;
|
missedBigGuy = true;
|
||||||
Jukebox.PlayOneShotGame($"ringside/muscles1");
|
SoundByte.PlayOneShotGame($"ringside/muscles1");
|
||||||
wrestlerAnim.DoScaledAnimationAsync("BigGuyOne", 0.5f);
|
wrestlerAnim.DoScaledAnimationAsync("BigGuyOne", 0.5f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -702,7 +703,7 @@ namespace HeavenStudio.Games
|
||||||
public void SuccessBigGuyFirst()
|
public void SuccessBigGuyFirst()
|
||||||
{
|
{
|
||||||
missedBigGuy = false;
|
missedBigGuy = false;
|
||||||
Jukebox.PlayOneShotGame($"ringside/muscles1");
|
SoundByte.PlayOneShotGame($"ringside/muscles1");
|
||||||
wrestlerAnim.DoScaledAnimationAsync("BigGuyOne", 0.5f);
|
wrestlerAnim.DoScaledAnimationAsync("BigGuyOne", 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -710,7 +711,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame($"ringside/muscles2");
|
SoundByte.PlayOneShotGame($"ringside/muscles2");
|
||||||
wrestlerAnim.DoScaledAnimationAsync("BigGuyTwo", 0.5f);
|
wrestlerAnim.DoScaledAnimationAsync("BigGuyTwo", 0.5f);
|
||||||
if (!missedBigGuy)
|
if (!missedBigGuy)
|
||||||
{
|
{
|
||||||
|
@ -722,7 +723,7 @@ namespace HeavenStudio.Games
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
reporterAnim.Play("ExtendMiss", 0, 0);
|
reporterAnim.Play("ExtendMiss", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
SoundByte.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("IdleMiss", 0, 0); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("IdleMiss", 0, 0); }),
|
||||||
|
@ -757,14 +758,14 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void SuccessBigGuySecond(PlayerActionEvent caller)
|
public void SuccessBigGuySecond(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame($"ringside/muscles2");
|
SoundByte.PlayOneShotGame($"ringside/muscles2");
|
||||||
wrestlerAnim.DoScaledAnimationAsync("BigGuyTwo", 0.5f);
|
wrestlerAnim.DoScaledAnimationAsync("BigGuyTwo", 0.5f);
|
||||||
if (!missedBigGuy)
|
if (!missedBigGuy)
|
||||||
{
|
{
|
||||||
reporterAnim.Play("ExtendSmile", 0, 0);
|
reporterAnim.Play("ExtendSmile", 0, 0);
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { Jukebox.PlayOneShotGame("ringside/musclesCamera"); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { SoundByte.PlayOneShotGame("ringside/musclesCamera"); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("SmileReporter", 0, 0); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("SmileReporter", 0, 0); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { FadeFlashColor(Color.white, new Color(1, 1, 1, 0), 0.5f); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { FadeFlashColor(Color.white, new Color(1, 1, 1, 0), 0.5f); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { flashObject.SetActive(true); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { flashObject.SetActive(true); }),
|
||||||
|
@ -813,9 +814,9 @@ namespace HeavenStudio.Games
|
||||||
wrestlerTransform.localScale = new Vector3(1.2f, 1.2f, 1f);
|
wrestlerTransform.localScale = new Vector3(1.2f, 1.2f, 1f);
|
||||||
int randomPose = UnityEngine.Random.Range(1, 7);
|
int randomPose = UnityEngine.Random.Range(1, 7);
|
||||||
wrestlerAnim.Play($"Pose{randomPose}", 0, 0);
|
wrestlerAnim.Play($"Pose{randomPose}", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"ringside/yell{UnityEngine.Random.Range(1, 7)}Raw");
|
SoundByte.PlayOneShotGame($"ringside/yell{UnityEngine.Random.Range(1, 7)}Raw");
|
||||||
reporterAnim.Play("IdleMiss", 0, 0);
|
reporterAnim.Play("IdleMiss", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
SoundByte.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.1f, delegate { wrestlerTransform.localScale = new Vector3(1f, 1f, 1f); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.1f, delegate { wrestlerTransform.localScale = new Vector3(1f, 1f, 1f); }),
|
||||||
|
@ -840,14 +841,14 @@ namespace HeavenStudio.Games
|
||||||
reporterAnim.Play("ExcitedReporter", 0, 0);
|
reporterAnim.Play("ExcitedReporter", 0, 0);
|
||||||
}
|
}
|
||||||
hitPose = true;
|
hitPose = true;
|
||||||
Jukebox.PlayOneShotGame($"ringside/yell{UnityEngine.Random.Range(1, 7)}");
|
SoundByte.PlayOneShotGame($"ringside/yell{UnityEngine.Random.Range(1, 7)}");
|
||||||
FadeFlashColor(Color.white, new Color(1, 1, 1, 0), 1f);
|
FadeFlashColor(Color.white, new Color(1, 1, 1, 0), 1f);
|
||||||
FadeBGColor(Color.black, defaultBGColorLight, 1f);
|
FadeBGColor(Color.black, defaultBGColorLight, 1f);
|
||||||
flashParticles.Play();
|
flashParticles.Play();
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.1f, delegate { wrestlerTransform.localScale = new Vector3(1f, 1f, 1f); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.1f, delegate { wrestlerTransform.localScale = new Vector3(1f, 1f, 1f); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { Jukebox.PlayOneShotGame("ringside/poseCamera"); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { SoundByte.PlayOneShotGame("ringside/poseCamera"); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { flashParticles.Stop(); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { flashParticles.Stop(); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { poseFlash.SetActive(true); poseFlash.GetComponent<Animator>().Play("PoseFlashing", 0, 0); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate { poseFlash.SetActive(true); poseFlash.GetComponent<Animator>().Play("PoseFlashing", 0, 0); }),
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 1.99f, delegate { poseFlash.SetActive(false); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 1.99f, delegate { poseFlash.SetActive(false); }),
|
||||||
|
@ -857,7 +858,7 @@ namespace HeavenStudio.Games
|
||||||
public void Miss(PlayerActionEvent caller)
|
public void Miss(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
reporterAnim.Play("ExtendMiss", 0, 0);
|
reporterAnim.Play("ExtendMiss", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
SoundByte.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("IdleMiss", 0, 0); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("IdleMiss", 0, 0); }),
|
||||||
|
@ -873,7 +874,7 @@ namespace HeavenStudio.Games
|
||||||
public void MissBigGuyTwo(PlayerActionEvent caller)
|
public void MissBigGuyTwo(PlayerActionEvent caller)
|
||||||
{
|
{
|
||||||
reporterAnim.Play("ExtendMiss", 0, 0);
|
reporterAnim.Play("ExtendMiss", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
SoundByte.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("IdleMiss", 0, 0); }),
|
new BeatAction.Action(caller.startBeat + caller.timer + 0.5f, delegate { reporterAnim.Play("IdleMiss", 0, 0); }),
|
||||||
|
@ -886,7 +887,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
shouldNotInput = true;
|
shouldNotInput = true;
|
||||||
reporterAnim.Play("IdleMiss", 0, 0);
|
reporterAnim.Play("IdleMiss", 0, 0);
|
||||||
Jukebox.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
SoundByte.PlayOneShotGame($"ringside/huhaudience{UnityEngine.Random.Range(0, 2)}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Nothing(PlayerActionEvent caller){}
|
public void Nothing(PlayerActionEvent caller){}
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace HeavenStudio.Games.Scripts_Rockers
|
||||||
|
|
||||||
private Rockers game;
|
private Rockers game;
|
||||||
|
|
||||||
public void Init(int pitch, float beat, float length)
|
public void Init(int pitch, double beat, double length)
|
||||||
{
|
{
|
||||||
game = Rockers.instance;
|
game = Rockers.instance;
|
||||||
this.pitch = pitch;
|
this.pitch = pitch;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue