void ChooseAReaction(ReactionType rt, ReactionCatagory rc) { currentReaction = reactions[Random.Range(0, reactions.Length)]; if ((currentReaction.reactionType != rt || currentReaction.reactionCatagory != rc) && attempts >= 0) { if (!currentReaction.tried) { currentReaction.tried = true; attempts--; } ChooseAReaction(rt, rc); return; } else if (attempts <= 0) { if (reactions.Length > 0) { currentReaction = reactions[0]; } } attempts = reactions.Length; foreach (VoiceLine vl in reactions) { vl.tried = false; } boredumLevelTimer = (rt == ReactionType.Event) ? timeUntilNextBoredumLevel: boredumLevelTimer; currentReaction.spriteSheet.animationFinished = false; currentReaction.spriteSheet.index = 0; currentReaction.audio.audioStarted = false; currentReaction.audio.audioFinished = false; currentReaction.text.subtitlesFinished = false; currentReaction.text.subtitleTimer = 0; speakingState = (rt == ReactionType.Event) ? SpeakingState.Speaking : SpeakingState.IdolSpeaking; }
public void ReactNegatively() { if (speakingState != SpeakingState.Speaking) { ChooseAReaction(ReactionType.Event, ReactionCatagory.Negative); idolState = ReactionCatagory.Negative; } }
void NextIdolState() { if (idolState == ReactionCatagory.Positive) { idolState = ReactionCatagory.Nuetral; } else if (idolState == ReactionCatagory.Nuetral) { idolState = ReactionCatagory.Negative; } else if (idolState == ReactionCatagory.Negative) { idolState = ReactionCatagory.AFK; } else if (idolState == ReactionCatagory.AFK) { idolState = ReactionCatagory.AFK; } else { idolState = ReactionCatagory.Nuetral; } boredumLevelTimer = timeUntilNextBoredumLevel; }