コード例 #1
0
    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());
    }
コード例 #2
0
 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);
 }
コード例 #3
0
 public void AddEffectSe(string seName)
 {
     if (seName == null || seName.Length == 0)
     {
         return;
     }
     if (!this.effectSe.Contains(seName) && !BattleFunctionUtility.IsEmptyPath(seName))
     {
         this.effectSe.Add(seName);
     }
 }
コード例 #4
0
 public void TryStopSE(string id, float time = 0f)
 {
     if (BattleFunctionUtility.IsEmptyPath(id))
     {
         return;
     }
     if (this.soundManager.IsPlayingSE(id))
     {
         this.soundManager.StopSE(id, time, null);
     }
 }
コード例 #5
0
 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);
 }
コード例 #6
0
    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;
    }
コード例 #7
0
    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;
    }