convert karateman to karateMan

* conversion stuff start
* voice cutting fully works and is consistent now

color conversion isn't working, but ill fix it eventually
background color isn't working rn either, and moving to the new system has caused a lot of errors
This commit is contained in:
AstrlJelly 2023-08-13 01:50:22 -04:00
parent 1d2070ba61
commit 26b082983f
6 changed files with 241 additions and 158 deletions

View file

@ -103754,7 +103754,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -0.25}
m_AnchoredPosition: {x: -3.44, y: -0.75}
m_SizeDelta: {x: 18, y: 2}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &4938178472322233844
@ -108820,7 +108820,7 @@ SpriteRenderer:
m_SortingLayer: 0
m_SortingOrder: -5002
m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3}
m_Color: {r: 0.9843137, g: 0.7921569, b: 0.24313726, a: 1}
m_Color: {r: 0.985, g: 0.79, b: 0.243, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0

View file

@ -2,14 +2,15 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: karateman_cellshader
m_Shader: {fileID: 4800000, guid: ff54fed5718ccc543808dec1f266d1c8, type: 3}
m_ShaderKeywords:
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@ -55,6 +56,7 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _ColorMask: 15
@ -82,8 +84,8 @@ Material:
m_Colors:
- _AddColor: {r: 0, g: 0, b: 0, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _ColorAlpha: {r: 0.84705883, g: 0.8156863, b: 0.6901961, a: 1}
- _ColorAlpha: {r: 1, g: 1, b: 1, a: 1}
- _ColorBravo: {r: 1, g: 0, b: 0, a: 1}
- _ColorDelta: {r: 0.972549, g: 0.972549, b: 0.972549, a: 1}
- _ColorDelta: {r: 0.81, g: 0.81, b: 0.81, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View file

@ -11,8 +11,46 @@ namespace HeavenStudio.Games.Loaders
using static Minigames;
public static class RvlNewKarateLoader
{
public static Minigame AddGame(EventCaller eventCaller) {
return new Minigame("karateman", "Karate Man", "fbca3e", false, false, new List<GameAction>()
public static Minigame AddGame(EventCaller eventCaller)
{
RiqEntity WarningUpdater(string datamodel, RiqEntity entity)
{
if (datamodel == "karateman/hitX")
{
entity.datamodel = "karateman/warnings";
int newWarning = (int)entity["type"];
if (entity["type"] < 7) {
newWarning++;
} else {
newWarning = 0;
}
entity.CreateProperty("whichWarning", newWarning);
entity.dynamicData.Remove("type");
return entity;
}
return null;
}
RiqBeatmap.OnUpdateEntity += WarningUpdater;
RiqEntity NameUpdater(string datamodel, RiqEntity entity)
{
if (entity.datamodel.Split('/')[0] == "karateman")
{
if (entity.datamodel == "karateman/bulb") Debug.Log(entity["colorA"]);
entity.datamodel = entity.datamodel.Remove(0, 9);
entity.datamodel = "karateMan" + entity.datamodel;
return entity;
} else if (entity.datamodel == "gameManager/switchGame/karateman") {
entity.datamodel = "gameManager/switchGame/karateMan";
}
return null;
}
RiqBeatmap.OnUpdateEntity += NameUpdater;
return new Minigame("karateMan", "Karate Man", "fbca3e", false, false, new List<GameAction>()
{
new GameAction("bop", "Bop")
{
@ -23,7 +61,6 @@ namespace HeavenStudio.Games.Loaders
new Param("toggle2", true, "Bop", "Whether to bop to the beat or not"),
new Param("toggle", false, "Bop (Auto)", "Whether to auto bop to the beat or not")
},
inactiveFunction = delegate { KarateMan.ToggleBopUnloaded(eventCaller.currentEntity["toggle"]); }
},
new GameAction("hit", "Toss Object") {
function = delegate {
@ -48,6 +85,10 @@ namespace HeavenStudio.Games.Loaders
{
function = delegate {
var e = eventCaller.currentEntity;
Debug.Log(e.beat);
Debug.Log(e["type"]);
Debug.Log(e["colorA"]);
Debug.Log(e["type2"]);
KarateMan.instance.CreateBulbSpecial(e.beat, e["type"], e["colorA"], e["type2"]);
KarateMan.CreateItemSFX(e.beat, e["type"], e["mute"], true);
},
@ -82,7 +123,7 @@ namespace HeavenStudio.Games.Loaders
{
new Param("toggle", false, "Contains Ball", "Barrel contains a ball instead of a bomb?"),
new Param("type", KarateMan.KarateManFaces.Smirk, "Success Expression", "The facial expression to set Joe to on hit"),
new Param("cutOut", true, "Cut Out Voice", "Should this cue cut out the last voice line played?"),
new Param("cutOut", true, "Cut Out Voice", "Will this cue be cut out by another voice?"),
new Param("disableVoice", false, "Disable Voice", "When enabled, there will be no voice during this cue"),
}
},
@ -102,24 +143,27 @@ namespace HeavenStudio.Games.Loaders
parameters = new List<Param>()
{
new Param("type", KarateMan.KarateManFaces.Happy, "Success Expression", "The facial expression to set Joe to on hit"),
new Param("cutOut", true, "Cut Out Voice", "Should this cue cut out the last voice line played?"),
new Param("cutOut", true, "Cut Out Voice", "Will this cue be cut out by another voice?"),
new Param("disableVoice", false, "Disable Voice", "When enabled, there will be no voice during this cue"),
}
},
new GameAction("hitX", "Warnings")
new GameAction("warnings", "Warnings")
{
function = delegate {
var e = eventCaller.currentEntity;
KarateMan.instance.DoWord(e.beat, e["type"]);
KarateMan.instance.DoWord(e.beat, e.length, e["whichWarning"], e["customLength"]);
},
defaultLength = 1f,
resizable = true,
parameters = new List<Param>()
{
new Param("type", KarateMan.HitThree.HitThree, "Type", "The warning text to show")
new Param("whichWarning", KarateMan.HitThree.HitThree, "Which Warning", "The warning text to show and the sfx to play"),
new Param("customLength", false, "Custom Length", "Have the warning text appear for the length of the block"),
new Param("cutOut", true, "Cut Out Voice", "Will this cue be cut out by another voice?"),
},
inactiveFunction = delegate {
var e = eventCaller.currentEntity;
KarateMan.DoWordSound(e.beat, e["type"]);
KarateMan.DoWordSound(e.beat, e.length, e["type"], e["customLength"]);
}
},
new GameAction("special camera", "Special Camera")
@ -136,7 +180,7 @@ namespace HeavenStudio.Games.Loaders
new GameAction("prepare", "Preparation Stance")
{
function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.Prepare(e.beat, e.length);},
resizable = true
resizable = true,
},
new GameAction("set gameplay modifiers", "Gameplay Modifiers")
{
@ -146,7 +190,8 @@ namespace HeavenStudio.Games.Loaders
{
new Param("type", KarateMan.NoriMode.None, "Flow Bar type", "The type of Flow bar to use"),
new Param("toggle", true, "Enable Combos", "Allow the player to combo? (Contextual combos will still be allowed even when off)"),
}
new Param("toggle2", true, "Enable Kicks", "Allow the player to kick? (Contextual kicks will still be allowed even when off)"),
},
},
new GameAction("set background effects", "Background Appearance")
{
@ -190,17 +235,24 @@ namespace HeavenStudio.Games.Loaders
new Param("type", KarateMan.ParticleType.None, "Particle Type", "The type of particle effect to spawn. Using \"None\" will stop all effects"),
new Param("valA", new EntityTypes.Float(0f, 64f, 1f), "Wind Strength", "The strength of the particle wind"),
new Param("valB", new EntityTypes.Float(1f, 16f, 1f), "Particle Intensity", "The intensity of the particle effect")
}
},
},
new GameAction("force facial expression", "Set Facial Expression")
{
function = delegate { KarateMan.instance.SetFaceExpression(eventCaller.currentEntity["type"]); },
defaultLength = 0.5f,
resizable = true,
parameters = new List<Param>()
{
new Param("type", KarateMan.KarateManFaces.Normal, "Facial Expression", "The facial expression to force Joe to. Special moves may override this")
}
},
// hidden but here so that the block can update
new GameAction("hitX", "Warnings (old)")
{
hidden = true,
},
},
new List<string>() {"agb", "ntr", "rvl", "ctr", "pco", "normal"},
"karate", "en",
@ -252,6 +304,7 @@ namespace HeavenStudio.Games
public enum HitThree
{
HitOne,
HitTwo,
HitThree,
HitThreeAlt,
@ -259,7 +312,6 @@ namespace HeavenStudio.Games
Grr,
Warning,
Combo,
HitOne,
}
public enum LightBulbType
@ -335,6 +387,7 @@ namespace HeavenStudio.Games
None,
Tengoku,
Mania,
ManiaHorizontal,
}
public static bool IsComboEnable = true; //only stops Out combo inputs, this basically makes combo contextual
@ -374,15 +427,20 @@ namespace HeavenStudio.Games
const float hitVoiceOffset = 0.042f;
[Header("Backgrounds")]
// new bg fading
private double colorStartBeat = -1;
private float colorLength = 0f;
private Color colorStart = new Color(0.985f, 0.79f, 0.243f);
private Color colorEnd = Color.white;
private Util.EasingFunction.Ease colorEase;
static int bgType = (int) BackgroundType.Yellow;
public static int currentBgEffect = (int) BackgroundFXType.None;
static double bgFadeTime = double.MinValue;
static float bgFadeDuration = 0f;
static Color bgColour = Color.white;
public SpriteRenderer BGPlane;
public GameObject BGEffect;
Color bgColourLast;
Animator bgEffectAnimator;
SpriteRenderer bgEffectSpriteRenderer;
@ -416,11 +474,8 @@ namespace HeavenStudio.Games
public GameObject RainEffectGO;
[Header("Unloaded Game Calls")]
//public static Queue<Beatmap.Entity> ItemQueue = new Queue<Beatmap.Entity>();
public static bool WantBop = true;
public static bool WantNori = true;
public static int WantNoriType = (int) NoriMode.None;
public static List<RiqEntity> voiceEntities = new();
public List<RiqEntity> voiceEntities = new();
public List<RiqEntity> hitVoiceEntities = new();
private void Awake()
{
@ -452,7 +507,8 @@ namespace HeavenStudio.Games
queuedCombos.Clear();
}
List<RiqEntity> prevEntities = GameManager.instance.Beatmap.Entities.FindAll(c => c.datamodel.Split(0) == "karateman");
List<RiqEntity> prevEntities = GameManager.instance.Beatmap.Entities.FindAll(c => c.datamodel.Split(0) == "karateMan");
// init colors
RiqEntity bg = prevEntities.FindLast(c => c.beat < beat && c.datamodel.Split(1) == "set background effects");
RiqEntity obj = prevEntities.FindLast(c => c.beat < beat && c.datamodel.Split(1) == "set object colors");
@ -471,8 +527,20 @@ namespace HeavenStudio.Games
UpdateMaterialColour(Color.white, new Color(0.81f, 0.81f, 0.81f), Color.white);
}
// init modifier(s)
RiqEntity bop = prevEntities.FindLast(c => c.beat < beat && c.datamodel.Split(1) == "bop");
if (bop != null) ToggleBop(0, 0, false, bop["toggle"]);
else ToggleBop(0, 0, false, true);
// get all entities to later check against eachother to cut out voices
voiceEntities = prevEntities.FindAll(c => c.beat > beat && (c.datamodel.Split(1) is "kick" or "combo") || (c.datamodel.Split(1) is "hitX" && c["type"] <= 3 || c[""] == 7));
voiceEntities = prevEntities.FindAll(c => c.beat > beat && (c.datamodel.Split(1) is "kick" or "combo"));
for (int i = 0; i < voiceEntities.Count; i++) {
Debug.Log("voice entity " + (i+1) + " : " + voiceEntities[i].beat);
}
hitVoiceEntities = prevEntities.FindAll(c => c.beat > beat && (c.datamodel.Split(1) is "warnings" && c["whichWarning"] <= (int)HitThree.HitFour));
for (int i = 0; i < hitVoiceEntities.Count; i++) {
Debug.Log("hitVoice entity " + (i+1) + " : " + hitVoiceEntities[i].beat);
}
}
public override void OnPlay(double beat)
@ -491,8 +559,6 @@ namespace HeavenStudio.Games
bgGradientRenderer = BGGradient.GetComponent<SpriteRenderer>();
bgBloodRenderer = BGBlood.GetComponent<SpriteRenderer>();
bgRadialRenderer = BGRadial.GetComponent<SpriteRenderer>();
ToggleBop(0, 0, false, WantBop);
}
private void Update()
@ -511,6 +577,7 @@ namespace HeavenStudio.Games
bgEffectAnimator.Play("NoPose", -1, 0);
break;
}
if (cond.songPositionInBeatsAsDouble >= wordClearTime)
{
Word.Play("NoPose");
@ -549,25 +616,7 @@ namespace HeavenStudio.Games
cameraPosition = CameraPosition[0].position;
}
float fadeProg = cond.GetPositionFromBeat(bgFadeTime, bgFadeDuration);
if (bgFadeTime != double.MinValue && fadeProg >= 0)
{
if (fadeProg >= 1f)
{
bgFadeTime = double.MinValue;
bgFadeDuration = 0f;
BGPlane.color = bgColour;
filterColour = filterColourNext;
UpdateFilterColour(bgColour, filterColour);
oldShadowColour = GetShadowColor(true);
}
else
{
Color col = Color.LerpUnclamped(bgColourLast, bgColour, fadeProg);
BGPlane.color = col;
UpdateFilterColour(col, Color.LerpUnclamped(filterColour, filterColourNext, fadeProg));
}
}
BackgroundColorUpdate();
GameCamera.additionalPosition = cameraPosition - GameCamera.defaultPosition;
BGEffect.transform.position = new Vector3(GameCamera.instance.transform.position.x, GameCamera.instance.transform.position.y, 0);
@ -587,7 +636,7 @@ namespace HeavenStudio.Games
static List<RiqEntity> allEnds = new List<RiqEntity>();
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" });
allHits.Sort((x, y) => x.beat.CompareTo(y.beat));
@ -637,24 +686,33 @@ namespace HeavenStudio.Games
cameraReturnLength = Mathf.Min(2f, length*0.5f);
}
public void DoWord(double beat, int type, bool doSound = true)
public void DoWord(double beat, double length, int type, bool customLength, bool doSound = true)
{
Word.Play(DoWordSound(beat, type, doSound));
Word.Play(DoWordSound(beat, length, type, customLength, doSound));
}
public static string DoWordSound(double beat, int type, bool doSound = true)
public static string DoWordSound(double beat, double length, int type, bool customLength, bool doSound = true)
{
string word = "NoPose";
double clear = 0f;
switch (type)
{
case (int) HitThree.HitOne: // lol
word = "Word06";
clear = beat + 4f;
if (doSound)
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound("karateMan/hit", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateMan/one", beat + 1f),
}, forcePlay: true);
break;
case (int) HitThree.HitTwo:
word = "Word02";
clear = beat + 4f;
if (doSound)
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound("karateman/hit", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateman/two", beat + 1f),
new MultiSound.Sound("karateMan/hit", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateMan/two", beat + 1f),
}, forcePlay: true);
break;
case (int) HitThree.HitThree:
@ -662,8 +720,8 @@ namespace HeavenStudio.Games
clear = beat + 4f;
if (doSound)
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound("karateman/hit", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateman/three", beat + 1f),
new MultiSound.Sound("karateMan/hit", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateMan/three", beat + 1f),
}, forcePlay: true);
break;
case (int) HitThree.HitThreeAlt:
@ -671,8 +729,8 @@ namespace HeavenStudio.Games
clear = beat + 4f;
if (doSound)
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound("karateman/hitAlt", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateman/threeAlt", beat + 1f),
new MultiSound.Sound("karateMan/hitAlt", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateMan/threeAlt", beat + 1f),
}, forcePlay: true);
break;
case (int) HitThree.HitFour:
@ -681,8 +739,8 @@ namespace HeavenStudio.Games
if (doSound)
MultiSound.Play(new MultiSound.Sound[]
{
new MultiSound.Sound("karateman/hit", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateman/four", beat + 1f),
new MultiSound.Sound("karateMan/hit", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateMan/four", beat + 1f),
}, forcePlay: true);
break;
case (int) HitThree.Grr:
@ -697,19 +755,10 @@ namespace HeavenStudio.Games
word = "Word00";
clear = beat + 3f;
break;
case (int) HitThree.HitOne: //really?
word = "Word06";
clear = beat + 4f;
if (doSound)
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound("karateman/hit", beat + 0.5f, offset: hitVoiceOffset),
new MultiSound.Sound("karateman/one", beat + 1f),
}, forcePlay: true);
break;
}
if (Conductor.instance.songPositionInBeatsAsDouble <= clear && Conductor.instance.songPositionInBeatsAsDouble >= beat)
{
wordClearTime = clear;
wordClearTime = customLength ? (beat + length) : clear;
}
return word;
}
@ -719,9 +768,9 @@ namespace HeavenStudio.Games
string outSound;
string whichObj = (type == (int)HitType.Lightbulb || isBulb) ? "Lightbulb" : "Object";
if ((beat + 0.5f) % 1.0 == 0f) {
outSound = $"karateman/offbeat{whichObj}Out";
outSound = $"karateMan/offbeat{whichObj}Out";
} else {
outSound = $"karateman/{whichObj.ToLower()}Out";
outSound = $"karateMan/{whichObj.ToLower()}Out";
}
if (!muteSound) SoundByte.PlayOneShotGame(outSound, forcePlay: true);
@ -794,7 +843,7 @@ namespace HeavenStudio.Games
public static void ComboSFX()
{
SoundByte.PlayOneShotGame("karateman/barrelOutCombos", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/barrelOutCombos", forcePlay: true);
}
public static void QueueCombo(double beat, int expression, bool cutOut, bool noVoice)
@ -824,22 +873,27 @@ namespace HeavenStudio.Games
if (noVoice) return;
List<MultiSound.Sound> sounds = new() {
new MultiSound.Sound("karateman/punchy1", beat + 1f),
new MultiSound.Sound("karateman/punchy2", beat + 1.25f),
new MultiSound.Sound("karateman/punchy3", beat + 1.5f),
new MultiSound.Sound("karateman/punchy4", beat + 1.75f),
new MultiSound.Sound("karateman/ko", beat + 2f),
new MultiSound.Sound("karateman/pow", beat + 2.5f)
new MultiSound.Sound("karateMan/punchy1", beat + 1f),
new MultiSound.Sound("karateMan/punchy2", beat + 1.25f),
new MultiSound.Sound("karateMan/punchy3", beat + 1.5f),
new MultiSound.Sound("karateMan/punchy4", beat + 1.75f),
new MultiSound.Sound("karateMan/ko", beat + 2f),
new MultiSound.Sound("karateMan/pow", beat + 2.5f)
};
if (voiceEntities.Count > 0) {
RiqEntity firstVoice = voiceEntities.Find(x => x.beat >= beat + 1);
RiqEntity firstHitVoice = hitVoiceEntities.Find(x => x.beat >= beat + 1);
if (firstVoice != null) sounds.RemoveAll(x => x.beat > firstVoice.beat);
if (firstHitVoice != null) sounds.RemoveAll(x => x.beat > firstHitVoice.beat - 0.5);
}
MultiSound.Play(sounds.ToArray(), forcePlay: true);
}
public static void KickSFX()
{
SoundByte.PlayOneShotGame("karateman/barrelOutKicks", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/barrelOutKicks", forcePlay: true);
}
public static void QueueKick(double beat, bool ball, int expression, bool cutOut, bool noVoice)
@ -859,10 +913,10 @@ namespace HeavenStudio.Games
if (!noVoice) {
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound("karateman/punchKick1", beat + 1f),
new MultiSound.Sound("karateman/punchKick2", beat + 1.5f),
new MultiSound.Sound("karateman/punchKick3", beat + 1.75f),
new MultiSound.Sound("karateman/punchKick4", beat + 2.5f),
new MultiSound.Sound("karateMan/punchKick1", beat + 1f),
new MultiSound.Sound("karateMan/punchKick2", beat + 1.5f),
new MultiSound.Sound("karateMan/punchKick3", beat + 1.75f),
new MultiSound.Sound("karateMan/punchKick4", beat + 2.5f),
}, forcePlay: true);
}
}
@ -883,6 +937,28 @@ namespace HeavenStudio.Games
return mobj;
}
private void BackgroundColorUpdate()
{
float normalizedBeat = Mathf.Clamp01(Conductor.instance.GetPositionFromBeat(colorStartBeat, colorLength));
var func = Util.EasingFunction.GetEasingFunction(colorEase);
float newR = func(colorStart.r, colorEnd.r, normalizedBeat);
float newG = func(colorStart.g, colorEnd.g, normalizedBeat);
float newB = func(colorStart.b, colorEnd.b, normalizedBeat);
BGPlane.color = new Color(newR, newG, newB);
}
public void BackgroundColor(double beat, float length, Color colorStartSet, Color colorEndSet, int ease)
{
colorStartBeat = beat;
colorLength = length;
colorStart = colorStartSet;
colorEnd = colorEndSet;
colorEase = (Util.EasingFunction.Ease)ease;
}
public void SetBgAndShadowCol(double beat, float length, int newBgType, int shadowType, Color a, Color b, int fx)
{
SetBgFx(fx, beat, length);
@ -987,9 +1063,9 @@ namespace HeavenStudio.Games
Color lastCol, nextCol;
lastCol = oldShadowColour;
if(currentShadowType == (int) ShadowType.Custom)
if (currentShadowType == (int) ShadowType.Custom)
nextCol = customShadowColour;
else if(bgType < (int) BackgroundType.Custom)
else if (bgType < (int) BackgroundType.Custom)
nextCol = ShadowColors[bgType];
else
nextCol = Color.LerpUnclamped(bgColour, ShadowBlendColor, 0.45f);
@ -1004,10 +1080,9 @@ namespace HeavenStudio.Games
public void UpdateShadowColour(int type, Color colour)
{
if(currentShadowType == (int) ShadowType.Custom)
if (currentShadowType == (int) ShadowType.Custom)
oldShadowColour = customShadowColour;
else if(bgType < (int) BackgroundType.Custom)
else if (bgType < (int) BackgroundType.Custom)
oldShadowColour = ShadowColors[bgType];
else
oldShadowColour = Color.LerpUnclamped(bgColour, ShadowBlendColor, 0.45f);
@ -1076,11 +1151,6 @@ namespace HeavenStudio.Games
}
}
public static void ToggleBopUnloaded(bool toggle)
{
WantBop = toggle;
}
public void Prepare(double beat, float length)
{
Joe.Prepare(beat, length);

View file

@ -140,7 +140,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
if (!KarateMan.instance.IsExpectingInputNow(InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN))
{
Punch(1);
SoundByte.PlayOneShotGame("karateman/swingNoHit", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/swingNoHit", forcePlay: true);
}
}
@ -174,7 +174,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
else if (inKick && cond.GetPositionFromBeat(lastChargeTime, 2.75f) <= 0.5f && !KarateMan.instance.IsExpectingInputNow(InputType.STANDARD_UP | InputType.DIRECTION_UP))
{
Kick(cond.songPositionInBeatsAsDouble);
SoundByte.PlayOneShotGame("karateman/swingKick", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/swingKick", forcePlay: true);
}
}
@ -189,7 +189,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public bool Punch(int forceHand = 0)
{
if (GameManager.instance.currentGame != "karateman") return false;
if (GameManager.instance.currentGame != "karateMan") return false;
var cond = Conductor.instance;
bool straight = false;
@ -232,7 +232,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void ComboSequence(int seq)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
var cond = Conductor.instance;
bop.startBeat = cond.songPositionInBeatsAsDouble + 1f;
unPrepareTime = double.MinValue;
@ -286,10 +286,10 @@ namespace HeavenStudio.Games.Scripts_KarateMan
MultiSound.Play(new MultiSound.Sound[]
{
new MultiSound.Sound("karateman/swingNoHit", beat),
new MultiSound.Sound("karateman/swingNoHit_Alt", beat + 0.25f),
new MultiSound.Sound("karateman/swingNoHit_Alt", beat + 0.5f),
new MultiSound.Sound("karateman/comboMiss", beat + 0.75f),
new MultiSound.Sound("karateMan/swingNoHit", beat),
new MultiSound.Sound("karateMan/swingNoHit_Alt", beat + 0.25f),
new MultiSound.Sound("karateMan/swingNoHit_Alt", beat + 0.5f),
new MultiSound.Sound("karateMan/comboMiss", beat + 0.75f),
}, forcePlay: true);
}

View file

@ -81,6 +81,17 @@ namespace HeavenStudio.Games.Scripts_KarateMan
NoriManiaInk01.SetActive(false);
playedJust = false;
inputsToSwitch = KarateMan.CountHitsToEnd(fromBeat);
break;
case (int) KarateMan.NoriMode.ManiaHorizontal:
MaxNori = 10;
Nori = Mathf.Clamp(startingNori, 0, MaxNori);
scaleFactor = ScaleFactorMania;
NoriHolder = NoriHolderMania01;
NoriManiaInk00.SetActive(true);
NoriManiaInk01.SetActive(true);
playedJust = false;
inputsToSwitch = KarateMan.CountHitsToEnd(fromBeat);
break;
default:
@ -143,7 +154,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
if (KarateMan.instance.NoriPerformance >= 0.6f && oldNori / MaxNori < 0.6f && !playedJust)
{
playedJust = true;
SoundByte.PlayOneShotGame("karateman/nori_just");
SoundByte.PlayOneShotGame("karateMan/nori_just");
}
UpdateHeartColours();
}
@ -182,7 +193,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
if (KarateMan.instance.NoriPerformance < 0.6f && oldNori / MaxNori >= 0.6f)
{
playedJust = false;
SoundByte.PlayOneShotGame("karateman/nori_ng");
SoundByte.PlayOneShotGame("karateMan/nori_ng");
}
UpdateHeartColours();
}
@ -194,7 +205,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
if (noriMode == (int) KarateMan.NoriMode.Tengoku)
{
if (Nori >= MaxNori)
SoundByte.PlayOneShotGame("karateman/nori_through");
SoundByte.PlayOneShotGame("karateMan/nori_through");
playedJust = false;
Nori = 0;
foreach (Animator anim in NoriHeartAnimators)

View file

@ -321,7 +321,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
GameObject.Destroy(ShadowInstance.gameObject);
GameObject.Destroy(gameObject);
SoundByte.PlayOneShotGame("karateman/bombBreak", volume: 0.25f);
SoundByte.PlayOneShotGame("karateMan/bombBreak", volume: 0.25f);
return;
}
else if (cond.songPositionInBeatsAsDouble >= startBeat + Mathf.Max(2f, curveTargetBeat) || CurrentCurve == null) {
@ -440,7 +440,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
case ItemType.Bulb:
CurrentCurve = ItemCurves[straight ? 1 : 0];
curveTargetBeat = straight ? 1f : 1.5f;;
SoundByte.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);
if (effectTint.a == 0)
@ -464,101 +464,101 @@ namespace HeavenStudio.Games.Scripts_KarateMan
case ItemType.Rock:
CurrentCurve = ItemCurves[1];
curveTargetBeat = 1f;
SoundByte.PlayOneShotGame("karateman/rockHit", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/rockHit", forcePlay: true);
p = Instantiate(HitParticles[4], HitPosition[1].position, Quaternion.identity, game.ItemHolder);
p.Play();
if (game.IsNoriActive && game.NoriPerformance >= 1f)
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/rockHit_fullNori", forcePlay: true);
break;
case ItemType.Ball:
CurrentCurve = ItemCurves[1];
curveTargetBeat = 1f;
SoundByte.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.Play();
break;
case ItemType.Cooking:
CurrentCurve = ItemCurves[1];
curveTargetBeat = 1f;
SoundByte.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.Play();
game.CreateItemInstance(startBeat + 1f, "Item09", 0, ItemType.CookingLid);
GetComponent<Animator>().Play("Item08", -1, 0);
if (game.IsNoriActive && game.NoriPerformance >= 1f)
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/rockHit_fullNori", forcePlay: true);
break;
case ItemType.Alien:
CurrentCurve = ItemCurves[1];
curveTargetBeat = 1f;
SoundByte.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.Play();
if (game.IsNoriActive && game.NoriPerformance >= 1f)
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/rockHit_fullNori", forcePlay: true);
break;
case ItemType.Bomb:
CurrentCurve = ItemCurves[1];
curveTargetBeat = 1f;
SoundByte.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.Play();
game.Joe.RemoveBombGlow(startBeat + 1f, 1f);
if (game.IsNoriActive && game.NoriPerformance >= 1f)
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/rockHit_fullNori", forcePlay: true);
break;
case ItemType.TacoBell:
CurrentCurve = ItemCurves[1];
curveTargetBeat = 1f;
SoundByte.PlayOneShotGame("karateman/rockHit", forcePlay: true);
SoundByte.PlayOneShotGame("karateman/tacobell", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/rockHit", 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.Play();
if (game.IsNoriActive && game.NoriPerformance >= 1f)
SoundByte.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/rockHit_fullNori", forcePlay: true);
break;
case ItemType.ComboPot1:
CurrentCurve = ItemCurves[straight ? 1 : 0];
curveTargetBeat = 1.5f;
SoundByte.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.Play();
break;
case ItemType.ComboPot2:
CurrentCurve = ItemCurves[0];
curveTargetBeat = 1.5f;
SoundByte.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.Play();
break;
case ItemType.ComboPot3:
CurrentCurve = ItemCurves[2];
curveTargetBeat = 1f;
SoundByte.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.Play();
break;
case ItemType.ComboPot4:
CurrentCurve = ItemCurves[3];
curveTargetBeat = 1f;
SoundByte.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.Play();
break;
case ItemType.ComboPot5:
CurrentCurve = ItemCurves[4];
curveTargetBeat = 1f;
SoundByte.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.Play();
break;
case ItemType.ComboBarrel:
SoundByte.PlayOneShotGame("karateman/comboHit4", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/comboHit4", forcePlay: true);
p = Instantiate(HitParticles[0], HitPosition[5].position, Quaternion.identity, game.ItemHolder);
p.Play();
p = Instantiate(HitParticles[1], HitPosition[5].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
@ -572,7 +572,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
game.Joe.ApplyBombGlow();
game.CreateItemInstance(startBeat + 1f, "Item04", OnHitExpression, ItemType.KickBomb);
}
SoundByte.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.Play();
p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
@ -580,14 +580,14 @@ namespace HeavenStudio.Games.Scripts_KarateMan
break;
case ItemType.KickBomb:
SoundByte.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.Play();
game.Joe.RemoveBombGlow(startBeat + 0.75f);
break;
case ItemType.KickBall:
SoundByte.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.Play();
break;
@ -596,11 +596,11 @@ namespace HeavenStudio.Games.Scripts_KarateMan
curveTargetBeat = straight ? 1f : 1.5f;
if (game.IsNoriActive && game.NoriPerformance < 0.6f)
{
SoundByte.PlayOneShotGame("karateman/potHit_lowNori", forcePlay: true);
SoundByte.PlayOneShotGame("karateman/potHit", volume: 0.66f, forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/potHit_lowNori", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/potHit", volume: 0.66f, forcePlay: true);
}
else
SoundByte.PlayOneShotGame("karateman/potHit", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/potHit", forcePlay: true);
p = Instantiate(HitParticles[3], HitPosition[1].position, Quaternion.identity, game.ItemHolder);
p.Play();
@ -657,7 +657,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
void JoeComboSequence()
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
var joe = KarateMan.instance.Joe;
if (joe.GetShouldComboId() != comboId || !joe.inCombo) return;
switch (type)
@ -665,7 +665,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
case ItemType.ComboPot2:
joe.Punch(2);
if (joe.GetComboId() != comboId)
SoundByte.PlayOneShotGame("karateman/swingNoHit_Alt", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/swingNoHit_Alt", forcePlay: true);
else
{
ItemHitEffect();
@ -683,7 +683,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
//if the button isn't held anymore make Joe spin
if (joe.GetComboId() != comboId) {
joe.ComboMiss(startBeat + 1f);
SoundByte.PlayOneShotGame("karateman/comboMiss", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/comboMiss", forcePlay: true);
joe.SetShouldComboId(-2);
}
else
@ -730,7 +730,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void ItemJustOrNg(PlayerActionEvent caller, float state)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
var joe = KarateMan.instance.Joe;
if (state <= -1f || state >= 1f) {
bool straight = joe.Punch(ItemPunchHand());
@ -758,7 +758,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
CreateHitMark(false);
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
status = FlyStatus.HitWeak;
SoundByte.PlayOneShotGame("karateman/hitNoNori", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/hitNoNori", forcePlay: true);
joe.Punch(3);
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z - 30f);
KarateMan.instance.Nori.DoNG();
@ -775,7 +775,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void ItemWrongAction(PlayerActionEvent caller, float state)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
if (!KarateMan.IsComboEnable) return;
//hitting a normal object with the alt input
//WHEN SCORING THIS IS A MISS
@ -809,13 +809,13 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void ItemThrough(PlayerActionEvent caller)
{
var joe = KarateMan.instance.Joe;
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
if (status != FlyStatus.Fly || gameObject == null) return;
BeatAction.New(joe.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(startBeat + 2f, delegate {
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
SoundByte.PlayOneShotGame("karateman/karate_through", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/karate_through", forcePlay: true);
}),
new BeatAction.Action(startBeat + 5f, delegate {
if (joe.wantFace == -1)
@ -835,7 +835,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void ComboStartJustOrNg(PlayerActionEvent caller, float state)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
var joe = KarateMan.instance.Joe;
joe.inCombo = true;
joe.Punch(1);
@ -860,13 +860,13 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void ComboStartThrough(PlayerActionEvent caller)
{
var joe = KarateMan.instance.Joe;
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
if (status != FlyStatus.Fly || gameObject == null) return;
BeatAction.New(joe.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(startBeat + 2f, delegate {
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
SoundByte.PlayOneShotGame("karateman/karate_through", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/karate_through", forcePlay: true);
}),
new BeatAction.Action(startBeat + 5f, delegate {
if (joe.wantFace == -1)
@ -880,7 +880,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void ComboStartWrongAction(PlayerActionEvent caller, float state)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
//hitting a combo start with the normal input
//WHEN SCORING THIS IS A MISS
var joe = KarateMan.instance.Joe;
@ -906,7 +906,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void ComboEndJustOrNg(PlayerActionEvent caller, float state)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
var joe = KarateMan.instance.Joe;
joe.inCombo = false;
joe.SetComboId(-1);
@ -939,7 +939,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
}
public void ComboEndOut(PlayerActionEvent caller) {
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
var joe = KarateMan.instance.Joe;
if (status == FlyStatus.Fly && joe.inCombo && joe.GetComboId() == comboId && joe.comboWaiting)
{
@ -947,14 +947,14 @@ namespace HeavenStudio.Games.Scripts_KarateMan
joe.SetComboId(-1);
joe.SetShouldComboId(-1);
joe.ComboSequence(3);
SoundByte.PlayOneShotGame("karateman/swingKick", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/swingKick", forcePlay: true);
}
OnHit.CanHit(false);
}
public void ComboEndThrough(PlayerActionEvent caller)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
if (status != FlyStatus.Fly || gameObject == null) return;
var joe = KarateMan.instance.Joe;
if (joe.GetComboId() != comboId || !joe.inCombo)
@ -995,7 +995,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void KickChargeJustOrNg(PlayerActionEvent caller, float state)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
var joe = KarateMan.instance.Joe;
joe.Punch(ItemPunchHand());
@ -1028,13 +1028,13 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void KickChargeThrough(PlayerActionEvent caller)
{
var joe = KarateMan.instance.Joe;
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
if (status != FlyStatus.Fly || gameObject == null) return;
BeatAction.New(joe.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(startBeat + 2f, delegate {
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
SoundByte.PlayOneShotGame("karateman/karate_through", forcePlay: true);
SoundByte.PlayOneShotGame("karateMan/karate_through", forcePlay: true);
}),
new BeatAction.Action(startBeat + 5f, delegate {
if (joe.wantFace == -1)
@ -1054,7 +1054,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void KickJustOrNg(PlayerActionEvent caller, float state)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
var joe = KarateMan.instance.Joe;
joe.Kick(Conductor.instance.songPositionInBeatsAsDouble);
@ -1094,7 +1094,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public void KickThrough(PlayerActionEvent caller)
{
if (GameManager.instance.currentGame != "karateman") return;
if (GameManager.instance.currentGame != "karateMan") return;
if (status != FlyStatus.Fly || gameObject == null) return;
BeatAction.New(KarateMan.instance.Joe.gameObject, new List<BeatAction.Action>()
{