mirror of
https://github.com/RHeavenStudio/HeavenStudio.git
synced 2025-06-12 10:07:38 +02:00
Misc. Fixes and Additions (#440)
* Ringside fixes * Clappy Trio bop logic fix * Quiz show answer reaction fix * prequel background begone! * You can now hide the alien in spaceball * Fixed lightning toss jank * btsds recolor, need to add lights next * Btsds lights and recolor * fixed sweat particle rendering over reporter * Asset bundles accomodation
This commit is contained in:
@ -32,18 +32,36 @@ namespace HeavenStudio.Games.Loaders
|
||||
},
|
||||
new GameAction("play piano", "Play Note")
|
||||
{
|
||||
function = delegate { BuiltToScaleDS.instance.PlayPiano(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["type"]); },
|
||||
resizable = true,
|
||||
parameters = new List<Param>()
|
||||
function = delegate { BuiltToScaleDS.instance.PlayPiano(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["type"]); },
|
||||
resizable = true,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("type", new EntityTypes.Integer(-24, 24, 0), "Semitones", "The number of semitones up or down this note should be pitched")
|
||||
},
|
||||
},
|
||||
},
|
||||
new List<string>() {"ntr", "normal"},
|
||||
"ntrassembly", "en",
|
||||
new List<string>() {}
|
||||
);
|
||||
new GameAction("color", "Color Palette")
|
||||
{
|
||||
function = delegate { var e = eventCaller.currentEntity; BuiltToScaleDS.instance.UpdateMappingColors(e["object"], e["shooter"], e["bg"]); },
|
||||
defaultLength = 0.5f,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("object", Color.white, "Object Color"),
|
||||
new Param("shooter", Color.white, "Shooter Color"),
|
||||
new Param("bg", new Color(0, 1, 0, 1), "Environment Color")
|
||||
}
|
||||
},
|
||||
new GameAction("lights", "Lights")
|
||||
{
|
||||
function = delegate { var e = eventCaller.currentEntity; BuiltToScaleDS.instance.Lights(e.beat, e.length, e["auto"], e["light"] && !e["auto"]); },
|
||||
defaultLength = 4f,
|
||||
resizable = true,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("auto", true, "Lights (Auto)", "Should the lights auto light?"),
|
||||
new Param("light", false, "Lights", "Should the lights light?")
|
||||
}
|
||||
}
|
||||
}, new List<string>() { "ntr", "normal" }, "ntrassembly", "en", new List<string>() { });
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -62,6 +80,7 @@ namespace HeavenStudio.Games
|
||||
|
||||
[Header("References")]
|
||||
[SerializeField] SkinnedMeshRenderer environmentRenderer;
|
||||
[SerializeField] SkinnedMeshRenderer elevatorRenderer;
|
||||
public GameObject flyingRodBase;
|
||||
public GameObject movingBlocksBase;
|
||||
public GameObject hitPartsBase;
|
||||
@ -71,27 +90,87 @@ namespace HeavenStudio.Games
|
||||
public Animator shooterAnim;
|
||||
public Animator elevatorAnim;
|
||||
|
||||
[SerializeField] private Material shooterMaterial;
|
||||
[SerializeField] private Material objectMaterial;
|
||||
[SerializeField] private Material gridPlaneMaterial;
|
||||
private Material elevatorMaterial;
|
||||
private Material[] gridMaterials;
|
||||
private Material[] firstPatternLights;
|
||||
private Material[] secondPatternLights;
|
||||
|
||||
[Header("Properties")]
|
||||
[SerializeField] float beltSpeed = 1f;
|
||||
|
||||
private Material beltMaterial;
|
||||
private Material[] environmentMaterials;
|
||||
private Material[] elevatorMaterials;
|
||||
private float currentBeltOffset;
|
||||
private bool lighting = false;
|
||||
private bool autoLight = false;
|
||||
private bool firstLight = true;
|
||||
|
||||
[NonSerialized] public bool shootingThisFrame;
|
||||
[NonSerialized] public bool lastShotOut = false;
|
||||
private static Color currentObjectColor = Color.white;
|
||||
private static Color currentShooterColor = Color.white;
|
||||
private static Color currentEnvironmentColor = new Color(0, 1, 0, 1);
|
||||
|
||||
public static BuiltToScaleDS instance;
|
||||
|
||||
private GameEvent lightBeat = new GameEvent();
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
instance = this;
|
||||
|
||||
environmentMaterials = environmentRenderer.materials;
|
||||
elevatorMaterials = elevatorRenderer.materials;
|
||||
beltMaterial = Instantiate(environmentMaterials[8]);
|
||||
environmentMaterials[8] = beltMaterial;
|
||||
elevatorMaterial = Instantiate(elevatorMaterials[3]);
|
||||
elevatorMaterials[3] = elevatorMaterial;
|
||||
gridMaterials = new Material[]
|
||||
{
|
||||
Instantiate(environmentMaterials[9]),
|
||||
Instantiate(environmentMaterials[11]),
|
||||
Instantiate(environmentMaterials[12]),
|
||||
Instantiate(environmentMaterials[13]),
|
||||
Instantiate(environmentMaterials[14]),
|
||||
};
|
||||
environmentMaterials[9] = gridMaterials[0];
|
||||
environmentMaterials[11] = gridMaterials[1];
|
||||
environmentMaterials[12] = gridMaterials[2];
|
||||
environmentMaterials[13] = gridMaterials[3];
|
||||
environmentMaterials[14] = gridMaterials[4];
|
||||
|
||||
firstPatternLights = new Material[]
|
||||
{
|
||||
Instantiate(environmentMaterials[1]),
|
||||
Instantiate(environmentMaterials[2]),
|
||||
Instantiate(environmentMaterials[4]),
|
||||
};
|
||||
environmentMaterials[1] = firstPatternLights[0];
|
||||
environmentMaterials[2] = firstPatternLights[1];
|
||||
environmentMaterials[4] = firstPatternLights[2];
|
||||
|
||||
secondPatternLights = new Material[]
|
||||
{
|
||||
Instantiate(environmentMaterials[0]),
|
||||
Instantiate(environmentMaterials[3])
|
||||
};
|
||||
environmentMaterials[0] = secondPatternLights[0];
|
||||
environmentMaterials[3] = secondPatternLights[1];
|
||||
|
||||
elevatorAnim.Play("MakeRod", 0, 1f);
|
||||
UpdateColors();
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
currentObjectColor = Color.white;
|
||||
currentShooterColor = Color.white;
|
||||
currentEnvironmentColor = new Color(0, 1, 0, 1);
|
||||
UpdateColors();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
@ -101,6 +180,38 @@ namespace HeavenStudio.Games
|
||||
GameCamera.additionalFoV = cameraFoV;
|
||||
}
|
||||
|
||||
public void UpdateMappingColors(Color objectColor, Color shooterColor, Color environmentColor)
|
||||
{
|
||||
currentObjectColor = objectColor;
|
||||
currentShooterColor = shooterColor;
|
||||
currentEnvironmentColor = environmentColor;
|
||||
UpdateColors();
|
||||
}
|
||||
|
||||
private void UpdateColors()
|
||||
{
|
||||
objectMaterial.SetColor("_Color", currentObjectColor);
|
||||
shooterMaterial.SetColor("_Color", currentShooterColor);
|
||||
beltMaterial.SetColor("_Color", currentEnvironmentColor);
|
||||
gridPlaneMaterial.SetColor("_Color", currentEnvironmentColor);
|
||||
elevatorMaterial.SetColor("_Color", currentEnvironmentColor);
|
||||
foreach (var mat in gridMaterials)
|
||||
{
|
||||
mat.SetColor("_Color", currentEnvironmentColor);
|
||||
}
|
||||
if (!lighting)
|
||||
{
|
||||
foreach (var mat in firstPatternLights)
|
||||
{
|
||||
mat.SetColor("_Color", currentEnvironmentColor);
|
||||
}
|
||||
foreach (var mat in secondPatternLights)
|
||||
{
|
||||
mat.SetColor("_Color", currentEnvironmentColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<DynamicBeatmap.DynamicEntity> spawnedBlockEvents = new List<DynamicBeatmap.DynamicEntity>();
|
||||
void Update()
|
||||
{
|
||||
@ -124,9 +235,15 @@ namespace HeavenStudio.Games
|
||||
}
|
||||
}
|
||||
|
||||
if (Conductor.instance.ReportBeat(ref lightBeat.lastReportedBeat, lightBeat.startBeat % 1) && autoLight)
|
||||
{
|
||||
HandleLights();
|
||||
}
|
||||
|
||||
currentBeltOffset = (currentBeltOffset + Time.deltaTime * -beltSpeed) % 1f;
|
||||
beltMaterial.mainTextureOffset = new Vector2(0f, currentBeltOffset);
|
||||
environmentRenderer.materials = environmentMaterials;
|
||||
elevatorRenderer.materials = elevatorMaterials;
|
||||
}
|
||||
|
||||
void LateUpdate()
|
||||
@ -157,6 +274,75 @@ namespace HeavenStudio.Games
|
||||
shootingThisFrame = false;
|
||||
}
|
||||
|
||||
public void Lights(float beat, float length, bool autoLights, bool shouldLights)
|
||||
{
|
||||
autoLight = autoLights;
|
||||
lighting = autoLights || shouldLights;
|
||||
if (shouldLights)
|
||||
{
|
||||
List<BeatAction.Action> actions = new List<BeatAction.Action>();
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
actions.Add(new BeatAction.Action(beat + i, delegate { HandleLights(); }));
|
||||
}
|
||||
if (!autoLights)
|
||||
{
|
||||
lighting = false;
|
||||
actions.Add(new BeatAction.Action(beat + length, delegate
|
||||
{
|
||||
foreach (var lightMat in firstPatternLights)
|
||||
{
|
||||
lightMat.DOColor(currentEnvironmentColor, 0.2f);
|
||||
}
|
||||
foreach (var lightMat in secondPatternLights)
|
||||
{
|
||||
lightMat.DOColor(currentEnvironmentColor, 0.2f);
|
||||
}
|
||||
}));
|
||||
}
|
||||
BeatAction.New(instance.gameObject, actions);
|
||||
}
|
||||
if (!autoLights && !shouldLights)
|
||||
{
|
||||
lighting = false;
|
||||
foreach (var lightMat in firstPatternLights)
|
||||
{
|
||||
lightMat.DOColor(currentEnvironmentColor, 0.2f);
|
||||
}
|
||||
foreach (var lightMat in secondPatternLights)
|
||||
{
|
||||
lightMat.DOColor(currentEnvironmentColor, 0.2f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleLights()
|
||||
{
|
||||
if (firstLight)
|
||||
{
|
||||
foreach (var lightMat in firstPatternLights)
|
||||
{
|
||||
lightMat.DOColor(Color.white, 0.2f);
|
||||
}
|
||||
foreach (var lightMat in secondPatternLights)
|
||||
{
|
||||
lightMat.DOColor(currentEnvironmentColor, 0.2f);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var lightMat in firstPatternLights)
|
||||
{
|
||||
lightMat.DOColor(currentEnvironmentColor, 0.2f);
|
||||
}
|
||||
foreach (var lightMat in secondPatternLights)
|
||||
{
|
||||
lightMat.DOColor(Color.white, 0.2f);
|
||||
}
|
||||
}
|
||||
firstLight = !firstLight;
|
||||
}
|
||||
|
||||
public void SpawnBlocks(float beat, float length)
|
||||
{
|
||||
var newBlocks = GameObject.Instantiate(movingBlocksBase, blocksHolder).GetComponent<Blocks>();
|
||||
|
@ -47,15 +47,6 @@ namespace HeavenStudio.Games.Loaders
|
||||
new Param("bop", CatchyTune.WhoBops.Both, "Bop", "Should Plalin and Alalin bop?"),
|
||||
new Param("bopAuto", CatchyTune.WhoBops.None, "Bop", "Should Plalin and Alalin auto bop?"),
|
||||
},
|
||||
},
|
||||
new GameAction("background", "Background")
|
||||
{
|
||||
function = delegate {var e = eventCaller.currentEntity; CatchyTune.instance.changeBG(e["BG"]); },
|
||||
defaultLength = 0.5f,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("BG", CatchyTune.Background.Long, "BG", "The background to change to")
|
||||
},
|
||||
}
|
||||
},
|
||||
new List<string>() {"ctr", "normal"},
|
||||
@ -104,8 +95,6 @@ namespace HeavenStudio.Games
|
||||
public GameObject pineappleBase;
|
||||
public Transform fruitHolder;
|
||||
public GameObject heartMessage;
|
||||
|
||||
public GameObject bg1;
|
||||
public GameObject bg2;
|
||||
|
||||
// when to stop playing the catch animation
|
||||
@ -320,20 +309,6 @@ namespace HeavenStudio.Games
|
||||
}
|
||||
}
|
||||
|
||||
public void changeBG(int bg)
|
||||
{
|
||||
if (bg == 0)
|
||||
{
|
||||
bg1.SetActive(true);
|
||||
bg2.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
bg1.SetActive(false);
|
||||
bg2.SetActive(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void catchSuccess(bool side, bool isPineapple, bool smile, float beat, float endSmile)
|
||||
{
|
||||
string anim = isPineapple ? "catchPineapple" : "catchOrange";
|
||||
|
@ -88,9 +88,7 @@ namespace HeavenStudio.Games
|
||||
private int clapIndex;
|
||||
|
||||
private ClappyTrioPlayer ClappyTrioPlayer;
|
||||
|
||||
public bool playerHitLast = false;
|
||||
public bool missed;
|
||||
public int misses;
|
||||
bool shouldBop;
|
||||
bool doEmotion = true;
|
||||
public int emoCounter;
|
||||
@ -186,7 +184,6 @@ namespace HeavenStudio.Games
|
||||
ClappyTrioPlayer.clapStarted = true;
|
||||
ClappyTrioPlayer.canHit = true; // this is technically a lie, this just restores the ability to hit
|
||||
|
||||
playerHitLast = false;
|
||||
isClapping = true;
|
||||
|
||||
// makes the other lions clap
|
||||
@ -221,15 +218,18 @@ namespace HeavenStudio.Games
|
||||
shouldBop = autoBop;
|
||||
if (startBop)
|
||||
{
|
||||
List<BeatAction.Action> bops = new List<BeatAction.Action>();
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
if (i == 0 && startBop && autoBop) continue;
|
||||
float spawnBeat = beat + i;
|
||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||
bops.Add(new BeatAction.Action(spawnBeat, delegate { Bop(spawnBeat); }));
|
||||
if (i == length - 1)
|
||||
{
|
||||
new BeatAction.Action(spawnBeat, delegate { Bop(spawnBeat); })
|
||||
});
|
||||
bops.Add(new BeatAction.Action(spawnBeat, delegate { misses = 0; }));
|
||||
}
|
||||
}
|
||||
if (bops.Count > 0) BeatAction.New(instance.gameObject, bops);
|
||||
}
|
||||
}
|
||||
|
||||
@ -237,14 +237,14 @@ namespace HeavenStudio.Games
|
||||
{
|
||||
if (doEmotion && emoCounter > 0)
|
||||
{
|
||||
if (playerHitLast)
|
||||
if (misses == 0)
|
||||
{
|
||||
for (int i = 0; i < Lion.Count; i++)
|
||||
{
|
||||
SetFace(i, 1);
|
||||
}
|
||||
}
|
||||
else if (missed)
|
||||
else if (misses > 0)
|
||||
{
|
||||
var a = EventCaller.GetAllInGameManagerList("clappyTrio", new string[] { "clap" });
|
||||
var b = a.FindAll(c => c.beat < beat);
|
||||
|
@ -54,8 +54,7 @@ namespace HeavenStudio.Games.Scripts_ClappyTrio
|
||||
}
|
||||
|
||||
private void Miss(PlayerActionEvent caller) {
|
||||
game.playerHitLast = false;
|
||||
game.missed = true;
|
||||
game.misses++;
|
||||
game.emoCounter = 2;
|
||||
|
||||
if (clapStarted)
|
||||
@ -71,16 +70,12 @@ namespace HeavenStudio.Games.Scripts_ClappyTrio
|
||||
{
|
||||
clapEffect.SetActive(true);
|
||||
Jukebox.PlayOneShotGame("clappyTrio/rightClap");
|
||||
|
||||
if (this.canHit)
|
||||
game.playerHitLast = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
clapEffect.SetActive(false);
|
||||
Jukebox.PlayOneShot("miss");
|
||||
game.playerHitLast = false;
|
||||
game.missed = true;
|
||||
game.misses++;
|
||||
|
||||
if (clapStarted)
|
||||
this.canHit = false;
|
||||
|
@ -525,7 +525,6 @@ namespace HeavenStudio.Games
|
||||
}
|
||||
if (pressCount == countToMatch)
|
||||
{
|
||||
GameProfiler.instance.IncreaseScore();
|
||||
Jukebox.PlayOneShotGame("quizShow/correct");
|
||||
contesteeHead.Play("ContesteeSmile", -1, 0);
|
||||
hostHead.Play("HostSmile", -1, 0);
|
||||
|
@ -150,6 +150,7 @@ namespace HeavenStudio.Games
|
||||
private Sound kidsLaugh;
|
||||
private int currentPose;
|
||||
private EasingFunction.Ease lastEase;
|
||||
private GameObject currentNewspaper;
|
||||
|
||||
private int currentZoomIndex;
|
||||
|
||||
@ -186,8 +187,8 @@ namespace HeavenStudio.Games
|
||||
allCameraEvents = tempEvents;
|
||||
|
||||
UpdateCameraZoom();
|
||||
shouldNotInput = false;
|
||||
shouldBop = true;
|
||||
wrestlerAnim.Play("Idle", 0, 1);
|
||||
ReporterBlink();
|
||||
}
|
||||
|
||||
void Update()
|
||||
@ -198,7 +199,7 @@ namespace HeavenStudio.Games
|
||||
{
|
||||
if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1))
|
||||
{
|
||||
if ((wrestlerAnim.IsPlayingAnimationName("Idle") || wrestlerAnim.IsPlayingAnimationName("BopPec") || wrestlerAnim.IsPlayingAnimationName("Bop")) && shouldBop)
|
||||
if (wrestlerAnim.IsAnimationNotPlaying() && shouldBop)
|
||||
{
|
||||
if (UnityEngine.Random.Range(1, 18) == 1)
|
||||
{
|
||||
@ -233,7 +234,6 @@ namespace HeavenStudio.Games
|
||||
new BeatAction.Action(cond.songPositionInBeats + 0.1f, delegate { wrestlerTransform.localScale = new Vector3(1f, 1f, 1f); }),
|
||||
});
|
||||
}
|
||||
ReporterBlink();
|
||||
}
|
||||
if (allCameraEvents.Count > 0)
|
||||
{
|
||||
@ -299,7 +299,7 @@ namespace HeavenStudio.Games
|
||||
{
|
||||
new BeatAction.Action(beat + i, delegate
|
||||
{
|
||||
if ((wrestlerAnim.IsPlayingAnimationName("Idle") || wrestlerAnim.IsPlayingAnimationName("BopPec") || wrestlerAnim.IsPlayingAnimationName("Bop")))
|
||||
if (wrestlerAnim.IsAnimationNotPlaying())
|
||||
{
|
||||
if (UnityEngine.Random.Range(1, 18) == 1)
|
||||
{
|
||||
@ -460,8 +460,8 @@ namespace HeavenStudio.Games
|
||||
new BeatAction.Action(beat, delegate {wrestlerAnim.DoScaledAnimationAsync("PreparePose", 0.25f); }),
|
||||
new BeatAction.Action(beat, delegate {shouldBop = false; }),
|
||||
new BeatAction.Action(beat + 1, delegate { PoseCheck(beat); }),
|
||||
new BeatAction.Action(beat + 3.99f, delegate { wrestlerAnim.Play("Idle", 0, 0); }),
|
||||
new BeatAction.Action(beat + 3.99f, delegate { reporterAnim.Play("IdleReporter", 0, 0); }),
|
||||
new BeatAction.Action(beat + 3.99f, delegate { wrestlerAnim.Play("Idle", 0, 1); }),
|
||||
new BeatAction.Action(beat + 3.99f, delegate { reporterAnim.DoUnscaledAnimation("IdleReporter"); }),
|
||||
new BeatAction.Action(beat + 3.99f, delegate { shouldNotInput = false; }),
|
||||
new BeatAction.Action(beat + 3.99f, delegate { shouldBop = true; }),
|
||||
});
|
||||
@ -475,14 +475,18 @@ namespace HeavenStudio.Games
|
||||
{
|
||||
keepZoomOut = true;
|
||||
blackVoid.color = Color.black;
|
||||
newspaper.SetActive(true);
|
||||
GameObject spawnedNewsPaper = Instantiate(newspaper, transform);
|
||||
spawnedNewsPaper.SetActive(true);
|
||||
currentNewspaper = spawnedNewsPaper;
|
||||
wrestlerNewspaperAnim = spawnedNewsPaper.transform.GetChild(1).GetComponent<Animator>();
|
||||
reporterNewspaperAnim = spawnedNewsPaper.transform.GetChild(2).GetComponent<Animator>();
|
||||
if (UnityEngine.Random.Range(1, 3) == 1)
|
||||
{
|
||||
newspaper.GetComponent<Animator>().Play("NewspaperEnter", 0, 0);
|
||||
spawnedNewsPaper.GetComponent<Animator>().Play("NewspaperEnter", 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
newspaper.GetComponent<Animator>().Play("NewspaperEnterRight", 0, 0);
|
||||
spawnedNewsPaper.GetComponent<Animator>().Play("NewspaperEnterRight", 0, 0);
|
||||
}
|
||||
if (!hitPose)
|
||||
{
|
||||
@ -500,7 +504,7 @@ namespace HeavenStudio.Games
|
||||
new BeatAction.Action(beat + 3f + newspaperBeats, delegate
|
||||
{
|
||||
blackVoid.color = new Color(1f, 1f, 1f, 0);
|
||||
newspaper.SetActive(false);
|
||||
Destroy(currentNewspaper); currentNewspaper = null;
|
||||
lastCamPos = new Vector3(0, 0, -10);
|
||||
Jukebox.KillLoop(kidsLaugh, 0.25f);
|
||||
keepZoomOut = false;
|
||||
@ -537,14 +541,18 @@ namespace HeavenStudio.Games
|
||||
new BeatAction.Action(beat + 3f, delegate
|
||||
{
|
||||
blackVoid.color = Color.black;
|
||||
newspaper.SetActive(true);
|
||||
GameObject spawnedNewsPaper = Instantiate(newspaper, transform);
|
||||
spawnedNewsPaper.SetActive(true);
|
||||
currentNewspaper = spawnedNewsPaper;
|
||||
wrestlerNewspaperAnim = spawnedNewsPaper.transform.GetChild(1).GetComponent<Animator>();
|
||||
reporterNewspaperAnim = spawnedNewsPaper.transform.GetChild(2).GetComponent<Animator>();
|
||||
if (UnityEngine.Random.Range(1, 3) == 1)
|
||||
{
|
||||
newspaper.GetComponent<Animator>().Play("NewspaperEnter", 0, 0);
|
||||
spawnedNewsPaper.GetComponent<Animator>().Play("NewspaperEnter", 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
newspaper.GetComponent<Animator>().Play("NewspaperEnterRight", 0, 0);
|
||||
spawnedNewsPaper.GetComponent<Animator>().Play("NewspaperEnterRight", 0, 0);
|
||||
}
|
||||
if (!hitPose)
|
||||
{
|
||||
@ -562,7 +570,7 @@ namespace HeavenStudio.Games
|
||||
new BeatAction.Action(beat + 3f + newspaperBeats, delegate
|
||||
{
|
||||
blackVoid.color = new Color(1f, 1f, 1f, 0);
|
||||
newspaper.SetActive(false);
|
||||
Destroy(currentNewspaper); currentNewspaper = null;
|
||||
Jukebox.KillLoop(kidsLaugh, 0.25f);
|
||||
})
|
||||
});
|
||||
@ -633,14 +641,12 @@ namespace HeavenStudio.Games
|
||||
|
||||
public void ReporterBlink()
|
||||
{
|
||||
int randomNumber = UnityEngine.Random.Range(1, 200);
|
||||
if (randomNumber == 1)
|
||||
if (reporterAnim.GetCurrentAnimatorStateInfo(0).IsName("IdleReporter"))
|
||||
{
|
||||
if (reporterAnim.IsPlayingAnimationName("IdleReporter"))
|
||||
{
|
||||
reporterAnim.DoScaledAnimationAsync("BlinkReporter", 0.5f);
|
||||
}
|
||||
reporterAnim.DoUnscaledAnimation("BlinkReporter");
|
||||
}
|
||||
float randomTime = UnityEngine.Random.Range(0.3f, 1.8f);
|
||||
Invoke("ReporterBlink", randomTime);
|
||||
}
|
||||
|
||||
public void JustQuestion(PlayerActionEvent caller, float state)
|
||||
@ -721,7 +727,24 @@ namespace HeavenStudio.Games
|
||||
}
|
||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.9f, delegate { wrestlerAnim.Play("Idle", 0, 0); }),
|
||||
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate
|
||||
{
|
||||
if (shouldBop)
|
||||
{
|
||||
if (UnityEngine.Random.Range(1, 18) == 1)
|
||||
{
|
||||
wrestlerAnim.DoScaledAnimationAsync("BopPec");
|
||||
}
|
||||
else
|
||||
{
|
||||
wrestlerAnim.DoScaledAnimationAsync("Bop");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wrestlerAnim.Play("Idle", 0, 1);
|
||||
}
|
||||
}),
|
||||
});
|
||||
return;
|
||||
}
|
||||
@ -756,7 +779,24 @@ namespace HeavenStudio.Games
|
||||
}
|
||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(caller.startBeat + caller.timer + 0.9f, delegate { wrestlerAnim.Play("Idle", 0, 0); }),
|
||||
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate
|
||||
{
|
||||
if (shouldBop)
|
||||
{
|
||||
if (UnityEngine.Random.Range(1, 18) == 1)
|
||||
{
|
||||
wrestlerAnim.DoScaledAnimationAsync("BopPec");
|
||||
}
|
||||
else
|
||||
{
|
||||
wrestlerAnim.DoScaledAnimationAsync("Bop");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wrestlerAnim.Play("Idle", 0, 1);
|
||||
}
|
||||
}),
|
||||
});
|
||||
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ namespace HeavenStudio.Games.Scripts_Spaceball
|
||||
|
||||
private float showBeat = 0;
|
||||
private bool isShowing = false;
|
||||
private bool isHiding = false;
|
||||
|
||||
const string IdleAnim = "AlienIdle";
|
||||
const string SwingAnim = "AlienSwing";
|
||||
@ -21,12 +22,12 @@ namespace HeavenStudio.Games.Scripts_Spaceball
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Conductor.instance.isPlaying && !isShowing)
|
||||
if (Conductor.instance.isPlaying && !isShowing && !isHiding)
|
||||
{
|
||||
anim.Play(SwingAnim, 0, Conductor.instance.GetLoopPositionFromBeat(0, 1f));
|
||||
anim.speed = 0;
|
||||
}
|
||||
else if (!Conductor.instance.isPlaying)
|
||||
else if (!Conductor.instance.isPlaying && !isHiding)
|
||||
{
|
||||
anim.Play(IdleAnim, 0, 0);
|
||||
}
|
||||
@ -34,7 +35,7 @@ namespace HeavenStudio.Games.Scripts_Spaceball
|
||||
if (isShowing)
|
||||
{
|
||||
float normalizedBeat = Conductor.instance.GetPositionFromBeat(showBeat, 1f);
|
||||
anim.Play(ShowAnim, 0, normalizedBeat);
|
||||
if (!isHiding) anim.Play(ShowAnim, 0, normalizedBeat);
|
||||
anim.speed = 0;
|
||||
|
||||
if (normalizedBeat >= 2)
|
||||
@ -44,10 +45,12 @@ namespace HeavenStudio.Games.Scripts_Spaceball
|
||||
}
|
||||
}
|
||||
|
||||
public void Show(float showBeat)
|
||||
public void Show(float showBeat, bool hide)
|
||||
{
|
||||
isShowing = true;
|
||||
this.showBeat = showBeat;
|
||||
isHiding = hide;
|
||||
if (hide) anim.Play("AlienHide", 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
@ -44,7 +44,11 @@ namespace HeavenStudio.Games.Loaders
|
||||
},
|
||||
new GameAction("alien", "Show Alien")
|
||||
{
|
||||
function = delegate { Spaceball.instance.alien.Show(eventCaller.currentEntity.beat); }
|
||||
function = delegate { Spaceball.instance.alien.Show(eventCaller.currentEntity.beat, eventCaller.currentEntity["hide"]); },
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("hide", false, "Hide", "Should the alien be hidden?")
|
||||
}
|
||||
},
|
||||
new GameAction("camera", "Zoom Camera")
|
||||
{
|
||||
|
@ -842,22 +842,22 @@ namespace HeavenStudio.Games
|
||||
switch (last + current)
|
||||
{
|
||||
case "redBlue":
|
||||
currentBall.SetState(TossBoysBall.State.RedBlueDual, beat);
|
||||
currentBall.SetState(TossBoysBall.State.RedBlueDual, beat, currentEventLength / 2);
|
||||
break;
|
||||
case "blueYellow":
|
||||
currentBall.SetState(TossBoysBall.State.BlueYellowDual, beat);
|
||||
currentBall.SetState(TossBoysBall.State.BlueYellowDual, beat, currentEventLength / 2);
|
||||
break;
|
||||
case "yellowBlue":
|
||||
currentBall.SetState(TossBoysBall.State.YellowBlueDual, beat);
|
||||
currentBall.SetState(TossBoysBall.State.YellowBlueDual, beat, currentEventLength / 2);
|
||||
break;
|
||||
case "blueRed":
|
||||
currentBall.SetState(TossBoysBall.State.BlueRedDual, beat);
|
||||
currentBall.SetState(TossBoysBall.State.BlueRedDual, beat, currentEventLength / 2);
|
||||
break;
|
||||
case "yellowRed":
|
||||
currentBall.SetState(TossBoysBall.State.YellowRedDual, beat);
|
||||
currentBall.SetState(TossBoysBall.State.YellowRedDual, beat, currentEventLength / 2);
|
||||
break;
|
||||
case "redYellow":
|
||||
currentBall.SetState(TossBoysBall.State.RedYellowDual, beat);
|
||||
currentBall.SetState(TossBoysBall.State.RedYellowDual, beat, currentEventLength / 2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -51,7 +51,7 @@ namespace HeavenStudio.Games
|
||||
public GameObject fxBase;
|
||||
|
||||
private int timer = 0;
|
||||
public float beatInterval = 4f;
|
||||
public float beatInterval = 6f;
|
||||
float intervalStartBeat;
|
||||
bool intervalStarted;
|
||||
public float wizardBeatOffset = 0f;
|
||||
|
Reference in New Issue
Block a user