private void LoadBGM() { List <string> list = new List <string>(); List <string> list2 = new List <string>(); for (int i = 0; i < base.hierarchyData.batteWaves.Length; i++) { if (!list2.Contains(base.hierarchyData.batteWaves[i].bgmId) && !BattleFunctionUtility.IsEmptyPath(base.hierarchyData.batteWaves[i].bgmId)) { list2.Add(base.hierarchyData.batteWaves[i].bgmId); } if (!list2.Contains(base.hierarchyData.batteWaves[i].changedBgmId) && !BattleFunctionUtility.IsEmptyPath(base.hierarchyData.batteWaves[i].changedBgmId) && !BoolExtension.AllMachValue(false, base.hierarchyData.batteWaves[i].enemiesBossFlag)) { list2.Add(base.hierarchyData.batteWaves[i].changedBgmId); } } for (int j = 0; j < list2.Count; j++) { list.Add(ResourcesPath.CreatePath(new string[] { "BGM", list2[j], "sound" })); } base.stateManager.soundManager.PreLoadAudio(list.ToArray(), list2.ToArray()); }
public void TryPlaySE(string id, float time = 0f, bool loop = false) { if (BattleFunctionUtility.IsEmptyPath(id)) { return; } this.soundManager.PlayTimeScaleSE(id, time, loop, true, null, -1); }
public void AddEffectSe(string seName) { if (seName == null || seName.Length == 0) { return; } if (!this.effectSe.Contains(seName) && !BattleFunctionUtility.IsEmptyPath(seName)) { this.effectSe.Add(seName); } }
public void TryStopSE(string id, float time = 0f) { if (BattleFunctionUtility.IsEmptyPath(id)) { return; } if (this.soundManager.IsPlayingSE(id)) { this.soundManager.StopSE(id, time, null); } }
public void TryPlayBGM(string path, float time = 0f) { if (BattleFunctionUtility.IsEmptyPath(path)) { return; } if (this.soundManager.IsPlayingBGM && this.soundManager.IsMatchPreviousPlayedBGM(path)) { return; } this.soundManager.PlayBGM(path, time, null); }
private IEnumerator InstantDeathFunction() { List <CharacterStateControl> characters = BattleFunctionUtility.GetSufferCharacters(SufferStateProperty.SufferType.InstantDeath, base.battleStateData); bool playedDeadSE = false; Dictionary <CharacterStateControl, bool> hit = new Dictionary <CharacterStateControl, bool>(characters.Count); if (characters.Count == 0) { yield break; } List <HitIcon> hitIconlist = new List <HitIcon>(); Vector3[] hitIconPositions = BattleFunctionUtility.GetHitIconPositions(base.stateManager.uiControl, characters); for (int i = 0; i < characters.Count; i++) { SufferStateProperty sufferStateProperty = characters[i].currentSufferState.GetSufferStateProperty(SufferStateProperty.SufferType.InstantDeath); hit.Add(characters[i], sufferStateProperty.isMiss); HitIcon item = base.stateManager.uiControl.ApplyShowHitIcon(i, hitIconPositions[i], AffectEffect.InstantDeath, 0, Strength.None, sufferStateProperty.isMiss, false, false, false, false, ExtraEffectType.Non, true, null); hitIconlist.Add(item); } this.ShowDigimon(characters); this.PlayCamera(characters); base.stateManager.cameraControl.PlayCameraShake(); base.stateManager.uiControl.ShowCharacterHUDFunction(characters.ToArray()); Action hudReposition = delegate() { foreach (CharacterStateControl characterStateControl2 in characters) { this.stateManager.uiControl.RepositionCharacterHUDPosition(new CharacterStateControl[] { characterStateControl2 }); } for (int j = 0; j < characters.Count; j++) { Vector3 fixableCharacterCenterPosition2DFunction = this.stateManager.uiControl.GetFixableCharacterCenterPosition2DFunction(characters[j]); hitIconlist[j].HitIconReposition(fixableCharacterCenterPosition2DFunction); } }; float waitSecond = base.stateManager.stateProperty.skillAfterWaitSecond; IEnumerator wait = base.stateManager.time.WaitForCertainPeriodTimeAction(waitSecond, hudReposition, null); while (wait.MoveNext()) { yield return(null); } base.stateManager.cameraControl.StopCameraShake(); foreach (CharacterStateControl characterStateControl in characters) { if (!hit[characterStateControl]) { Action deathEffectPlay = delegate() { if (!playedDeadSE) { this.stateManager.soundPlayer.PlayDeathSE(); } playedDeadSE = true; }; base.stateManager.threeDAction.PlayDeadAnimationCharacterAction(deathEffectPlay, characterStateControl); characterStateControl.Kill(); characterStateControl.isDiedJustBefore = true; } characterStateControl.currentSufferState.RemoveSufferState(SufferStateProperty.SufferType.InstantDeath, false); } IEnumerator end_wait = base.stateManager.time.WaitForCertainPeriodTimeAction(base.stateManager.stateProperty.skillAfterWaitSecond, null, null); while (end_wait.MoveNext()) { yield return(null); } yield break; }
private IEnumerator LoadSkill() { List <IEnumerator> effectStore = new List <IEnumerator>(); Dictionary <string, InvocationEffectParams> invocationEffectDictionary = new Dictionary <string, InvocationEffectParams>(); Dictionary <string, PassiveEffectParams[]> passiveEffectDictionary = new Dictionary <string, PassiveEffectParams[]>(); List <string> skillInvocation = new List <string>(); List <string> skillPassive = new List <string>(); foreach (SkillStatus skillStatus in base.hierarchyData.GetAllSkillStatus()) { string text = string.Empty; string text2 = string.Empty; SkillType skillType = skillStatus.skillType; if (skillType != SkillType.Attack) { if (skillType != SkillType.Deathblow) { if (skillType == SkillType.InheritanceTechnique) { text = "EFF_COM_SKILL"; text2 = skillStatus.prefabId; } } else { text = skillStatus.prefabId; text2 = "none"; } } else { text = "none"; text2 = "none"; } if (!skillInvocation.Contains(text)) { string skillInvocation2 = text; Action <InvocationEffectParams, string> result = delegate(InvocationEffectParams p, string id) { invocationEffectDictionary.Add(id, p); }; IEnumerator item = base.stateManager.initialize.LoadInvocationEffect(skillInvocation2, result); effectStore.Add(item); skillInvocation.Add(text); } if (!skillPassive.Contains(text2)) { string skillPassive2 = text2; Action <PassiveEffectParams[], string> result2 = delegate(PassiveEffectParams[] p, string id) { passiveEffectDictionary.Add(id, p); }; IEnumerator item2 = base.stateManager.initialize.LoadPassiveEffect(skillPassive2, result2); effectStore.Add(item2); skillPassive.Add(text2); } } IEnumerator loadEffect = base.stateManager.initialize.LoadCoroutine(effectStore.ToArray()); while (loadEffect.MoveNext()) { yield return(null); } foreach (SkillStatus skillStatus2 in base.hierarchyData.GetAllSkillStatus()) { string key = string.Empty; string key2 = string.Empty; SkillType skillType2 = skillStatus2.skillType; if (skillType2 != SkillType.Attack) { if (skillType2 != SkillType.Deathblow) { if (skillType2 == SkillType.InheritanceTechnique) { key = "EFF_COM_SKILL"; key2 = skillStatus2.prefabId; } } else { key = skillStatus2.prefabId; key2 = "none"; } } else { key = "none"; key2 = "none"; } skillStatus2.invocationEffectParams = invocationEffectDictionary[key]; skillStatus2.passiveEffectParams = passiveEffectDictionary[key2]; } SkillStatus[] allSkillStatus = base.hierarchyData.GetAllSkillStatus(); List <IEnumerator> hitEffectStore = base.stateManager.initialize.LoadHitEffectsByFlags(allSkillStatus); IEnumerator loadHitEffect = base.stateManager.initialize.LoadCoroutine(hitEffectStore.ToArray()); while (loadHitEffect.MoveNext()) { yield return(null); } List <IEnumerator> cameraMotions = base.stateManager.cameraControl.LoadCameraMotions(); IEnumerator loadCameraMotions = base.stateManager.initialize.LoadCoroutine(cameraMotions.ToArray()); while (loadCameraMotions.MoveNext()) { yield return(null); } List <IEnumerator> invocationEffectCameraMotionList = new List <IEnumerator>(); List <string> invocationEffectKeys = new List <string>(); foreach (SkillStatus skillStatus3 in base.hierarchyData.GetAllSkillStatus()) { if (!BattleFunctionUtility.IsEmptyPath(skillStatus3.invocationEffectParams.cameraMotionId) && !invocationEffectKeys.Contains(skillStatus3.invocationEffectParams.cameraMotionId)) { string cameraMotionId = skillStatus3.invocationEffectParams.cameraMotionId; IEnumerator item3 = base.stateManager.cameraControl.LoadCameraMotion(cameraMotionId, null); invocationEffectCameraMotionList.Add(item3); invocationEffectKeys.Add(cameraMotionId); } } IEnumerator loadInvocationEffectCameraMotion = base.stateManager.initialize.LoadCoroutine(invocationEffectCameraMotionList.ToArray()); while (loadInvocationEffectCameraMotion.MoveNext()) { yield return(null); } foreach (SkillStatus skillStatus4 in base.hierarchyData.GetAllSkillStatus()) { base.stateManager.soundPlayer.AddEffectSe(skillStatus4.seId); } base.stateManager.soundPlayer.LoadSound(); yield break; }