public static void playDamageSound(string id, Character.ID playerType = Character.ID.LEO) { #if UNITY_EDITOR if (BattleSimulator.nowSimulation && BattleSimulator.instance.skipTime > 1) { return; } #endif if (GameManager.info.soundData.TryGetValue(id, out _sd) == false) { return; } if (string.IsNullOrEmpty(_sd.link) == false) { playDamageSound(_sd.link, playerType); return; } if (_sd.type == Type.Chracter) { play(_sd.getDamageSound()); } else if (_sd.type == Type.Player) { string[] temp = null; switch (playerType) { case Character.ID.LEO: temp = Character.LEO_DMG; break; case Character.ID.KILEY: temp = Character.KILEY_DMG; break; case Character.ID.CHLOE: temp = Character.CHLOE_DMG; break; } if (temp != null) { if (_sd.dmgNum > 1) { int dmgNum = UnityEngine.Random.Range(0, _sd.dmgNum); playVoice(temp[dmgNum]); } else { playVoice(temp[0]); } } } }
public static void playGroanSound(string id, Character.ID playerType = Character.ID.LEO) { #if UNITY_EDITOR if (BattleSimulator.nowSimulation && BattleSimulator.instance.skipTime > 1) { return; } #endif if (GameManager.info.soundData.TryGetValue(id, out _sd) == false) { return; } if (_sd.type == Type.Player) { string[] temp = null; switch (playerType) { case Character.ID.LEO: temp = Character.LEO_GRN; break; case Character.ID.KILEY: temp = Character.KILEY_GRN; break; case Character.ID.CHLOE: temp = Character.CHLOE_GRN; break; } if (temp != null) { List <SoundData> grnSounds = new List <SoundData>(); for (int i = 0; i < _sd.grnNum; ++i) { if (GameManager.info == null || GameManager.info.soundData.ContainsKey(temp[i]) == false) { continue; } grnSounds.Add(GameManager.info.soundData[temp[i]]); } if (grnSounds.Count > 0) { SoundManager.instance.playGroanVoice(grnSounds.ToArray()); } } } }
public static void playPlayerAttackSound(SoundData sd, Character.ID playerType = Character.ID.LEO, int playChance = 60) { #if UNITY_EDITOR if (BattleSimulator.nowSimulation && BattleSimulator.instance.skipTime > 1) { return; } #endif //기합 : 공격할 때, 약 60%확률로 플레이 여부 결정 후, 기합 보이스 5개중 한 개 랜덤선택 플레이 if (UnityEngine.Random.Range(0, 100) <= playChance) { string[] temp = null; switch (playerType) { case Character.ID.LEO: temp = Character.LEO_ATK; break; case Character.ID.KILEY: temp = Character.KILEY_ATK; break; case Character.ID.CHLOE: temp = Character.CHLOE_ATK; break; } if (temp != null) { if (sd.atkNum > 1) { int atkNum = UnityEngine.Random.Range(0, sd.atkNum); playVoice(temp[atkNum]); } else { playVoice(temp[0]); } } } }
public ICharacter Get(Character.ID id) { //For larger list, we can sort the characterList in ascending order by Character.ID and then we can use Binary Search for performance; return(characterList.Find(character => character.CurrentID == id)); }