public skillInfo(string id, string name, string desc, int functionId, bool isOmega, SkillAim aim, SkillBreed breed , SkillKind kind, SDConstants.AOEType aoe, SDConstants.AddMpTpType mptpAdd) { ID = id; NAME = name; DESC = desc; FunctionId = functionId; IsOmegaSkill = isOmega; this.Aim = aim; this.Breed = breed; this.Kind = kind; SkillAoe = aoe; MpTpAddType = mptpAdd; }
public void damage(BattleRoleData currentActionUnit, BattleRoleData propTargetUnit , NumberData param, SDConstants.AOEType aoe = SDConstants.AOEType.None) { NormalAttack n; n = gameObject.GetComponent <NormalAttack>(); if (n == null) { n = gameObject.AddComponent <NormalAttack>(); } n.PropStartSkill(currentActionUnit, propTargetUnit, param, aoe); }
public void addHp(BattleRoleData currentActionUnit, BattleRoleData propTargetUnit, NumberData param , SDConstants.AOEType aoe = SDConstants.AOEType.None) { AddHeal heal; heal = gameObject.GetComponent <AddHeal>(); if (heal == null) { heal = gameObject.AddComponent <AddHeal>(); } heal.PropStartSkill(currentActionUnit, propTargetUnit, param, aoe); }
public void revive(BattleRoleData currentActionUnit, BattleRoleData propTargetUnit , NumberData param0, NumberData param1, SDConstants.AOEType aoeType = SDConstants.AOEType.None) { ReviveOne r; r = gameObject.GetComponent <ReviveOne>(); if (r == null) { r = gameObject.AddComponent <ReviveOne>(); } NDBarChart bc = NDBarChart.Build(param0, param1, NumberData.zero); r.PropStartSkill(currentActionUnit, propTargetUnit, bc, aoeType); }
public void PropStartSkill(BattleRoleData source, BattleRoleData target, NumberData val , SDConstants.AOEType AOEType = SDConstants.AOEType.None) { base.StartSkill(source, target); IsProcessing = true; IsUsed = true; this.AOEType = AOEType; List <BattleRoleData> list = DealWithAOEAction(source, target, AOEType); for (int i = 0; i < list.Count; i++) { StartCoroutine(IEStartSkill(source, list[i], val)); } }
public void addTp(BattleRoleData currentActionUnit, BattleRoleData propTargetUnit, NumberData param , SDConstants.AOEType AOEType = SDConstants.AOEType.None) { AddBarChart barchart; barchart = gameObject.GetComponent <AddBarChart>(); if (barchart == null) { barchart = gameObject.AddComponent <AddBarChart>(); } NDBarChart nc = NDBarChart.zero; nc.TP = param; barchart.PropStartSkill(currentActionUnit, propTargetUnit, nc, AOEType); }
public void UseProp(BattleRoleData currentActionUnit, BattleRoleData propTargetUnit , SDConstants.AOEType AOE) { //立即触发之效果 for (int i = 0; i < functionsWithoutState.Count; i++) { UsePropWithoutState(functionsWithoutState[i], AOE, currentActionUnit, propTargetUnit); } //建立道具添加的状态 if (UseState) { addState(currentActionUnit, propTargetUnit, _state, AOE); } // }
public void addState(BattleRoleData currentActionUnit, BattleRoleData propTargetUnit , StandardState state , SDConstants.AOEType aoeType = SDConstants.AOEType.None) { if (state.AimAtSelf) { propTargetUnit = currentActionUnit; } List <BattleRoleData> list = DealWithAOEAction(currentActionUnit, propTargetUnit, aoeType); for (int i = 0; i < list.Count; i++) { state.SimpleStartState(currentActionUnit, list[i]); } }
public void PropStartSkill(BattleRoleData source, BattleRoleData target, NDBarChart val , SDConstants.AOEType aoeType) { base.StartSkill(source, target); if (IsProcessing) { return; } IsProcessing = true; IsUsed = true; List <BattleRoleData> list = DealWithAOEAction(source, target, aoeType); for (int i = 0; i < list.Count; i++) { StartCoroutine(IEStartSkill(source, list[i], val)); } }
public void PropStartSkill(BattleRoleData source, BattleRoleData target, int val , SDConstants.AOEType AOEType = SDConstants.AOEType.None) { base.StartSkill(source, target); IsProcessing = true; IsUsed = true; if (GetComponent <HSkilInfo>()) { GetComponent <HSkilInfo>().AOEType = AOEType; List <BattleRoleData> list = DealWithAOEAction(source, target, AOEType); for (int i = 0; i < list.Count; i++) { StartCoroutine(IEStartSkill(source, list[i], NumberData.Build(val))); } } else { StartCoroutine(IEStartSkill(source, target, NumberData.Build(val))); } }
public void stateWork(BattleRoleData source, BattleRoleData target) { if (UseState && !stateCantWork) { if (_standardState != null) { SDConstants.AOEType aoe = _standardState.StateAOE; if (_standardState.AimAtSelf) { target = source; stateCantWork = true; List <BattleRoleData> list = DealWithAOEAction(source, target , _standardState.StateAOE); _standardState.StartState(this, source, target); } else { if (aoe == SDConstants.AOEType.None || aoe == SDConstants.AOEType.Continuous2 || aoe == SDConstants.AOEType.Continuous3) { _standardState.StartState(this, source, target); } else { stateCantWork = true; List <BattleRoleData> list = DealWithAOEAction(source, target , _standardState.StateAOE); foreach (BattleRoleData unit in list) { _standardState.StartState(this, source, unit); } } } } } }
public List <BattleRoleData> DealWithAOEAction (bool targetIsHero, SDConstants.AOEType AOE, bool isRevive = false) { if (!BM) { BM = FindObjectOfType <BattleManager>(); } List <BattleRoleData> results = new List <BattleRoleData>(); List <BattleRoleData> All; BattleRoleData target; if (isRevive) { All = targetIsHero ? BM.AllSRL_Array : BM.AllORL_Array; List <BattleRoleData> _all = All.FindAll(x => x.IsDead); All = _all; target = All[UnityEngine.Random.Range(0, All.Count)]; } else { All = targetIsHero ? BM.Remaining_SRL : BM.Remaining_ORL; target = All[UnityEngine.Random.Range(0, All.Count)]; } if (AOE == SDConstants.AOEType.None) { //this.StartSkill(source, target); results.Add(target); } else if (AOE == SDConstants.AOEType.Horizontal) { string _N = target.gameObject.name; if (_N.Contains("POS8")) { results.Add(target); } else { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { if (_N.Contains("POS0") || _N.Contains("POS2") || _N.Contains("POS6") || _N.Contains("POS4") || _N.Contains("POS5")) { string N = _parent.GetChild(i).name; if (N.Contains("POS0") || N.Contains("POS2") || N.Contains("POS6") || N.Contains("POS4") || N.Contains("POS5") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } else if (_N.Contains("POS1") || _N.Contains("POS3") || _N.Contains("POS7") || _N.Contains("POS4") || _N.Contains("POS5")) { string N = _parent.GetChild(i).name; if (N.Contains("POS1") || N.Contains("POS3") || N.Contains("POS7") || N.Contains("POS4") || N.Contains("POS5") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } } } else if (AOE == SDConstants.AOEType.Horizontal1) { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { string N = _parent.GetChild(i).name; if (N.Contains("POS0") || N.Contains("POS2") || N.Contains("POS6") || N.Contains("POS4") || N.Contains("POS5") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } else if (AOE == SDConstants.AOEType.Horizontal2) { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { string N = _parent.GetChild(i).name; if (N.Contains("POS1") || N.Contains("POS3") || N.Contains("POS7") || N.Contains("POS4") || N.Contains("POS5") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } else if (AOE == SDConstants.AOEType.Vertical) { string _N = target.gameObject.name; if (_N.Contains("POS8")) { results.Add(target); } else { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { //bool exit = false; if (_N.Contains("POS2") || _N.Contains("POS3") || _N.Contains("POS5") || _N.Contains("POS6") || _N.Contains("POS7")) { string N = _parent.GetChild(i).name; if (N.Contains("POS2") || N.Contains("POS3") || N.Contains("POS5") || N.Contains("POS6") || N.Contains("POS7") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } else if (_N.Contains("POS0") || _N.Contains("POS1") || _N.Contains("POS4") || _N.Contains("POS6") || _N.Contains("POS7")) { string N = _parent.GetChild(i).name; if (N.Contains("POS0") || N.Contains("POS1") || N.Contains("POS4") || N.Contains("POS6") || N.Contains("POS7") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } } } else if (AOE == SDConstants.AOEType.Vertical1) { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { string N = _parent.GetChild(i).name; if (N.Contains("POS2") || N.Contains("POS3") || N.Contains("POS5") || N.Contains("POS6") || N.Contains("POS7") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } else if (AOE == SDConstants.AOEType.Vertical2) { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { string N = _parent.GetChild(i).name; if (N.Contains("POS0") || N.Contains("POS1") || N.Contains("POS4") || N.Contains("POS6") || N.Contains("POS7") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } else if (AOE == SDConstants.AOEType.All) { BattleRoleData[] list = target.transform.parent .GetComponentsInChildren <BattleRoleData>(); for (int i = 0; i < list.Length; i++) { bool flag = false; if (list[i].IsDead && isRevive) { flag = true; } else if (!list[i].IsDead) { flag = true; } if (flag) { //this.StartSkill(source, list[i]); results.Add(list[i]); } } } else if (AOE == SDConstants.AOEType.Random1)//随机选择一个 { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(1, list.Count); for (int i = 0; i < _results.Count; i++) { //this.StartSkill(source, BM.All_Array[list[_results[i]]]); results.Add(BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Random2) { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(2, list.Count); for (int i = 0; i < _results.Count; i++) { results.Add(BM.All_Array[list[_results[i]]]); //this.StartSkill(source, BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Random3) { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(3, list.Count); for (int i = 0; i < _results.Count; i++) { results.Add(BM.All_Array[list[_results[i]]]); //this.StartSkill(source, BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Continuous2) { results.Add(target); List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } int index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); } else if (AOE == SDConstants.AOEType.Continuous3) { results.Add(target); List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } int index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); } else { results.Add(target); //this.StartSkill(source, target); } return(results); }
public List <BattleRoleData> DealWithAOEAction (BattleRoleData currentActionUnit, BattleRoleData propTargetUnit , SDConstants.AOEType AOE, bool isRevive = false) { BattleManager BM = FindObjectOfType <BattleManager>(); List <BattleRoleData> results = new List <BattleRoleData>(); if (AOE == SDConstants.AOEType.None) { results.Add(propTargetUnit); } else if (AOE == SDConstants.AOEType.Horizontal) { int childId = propTargetUnit.transform.GetSiblingIndex(); int nextId = (childId + 2) % SDConstants.MaxSelfNum; results.Add(propTargetUnit); BattleRoleData next = propTargetUnit.transform.parent.GetChild(nextId) .GetComponent <BattleRoleData>(); bool flag = false; if (next.IsDead && isRevive) { flag = true; } else if (!next.IsDead) { flag = true; } if (flag) { results.Add(next); } } else if (AOE == SDConstants.AOEType.Horizontal1) { BattleRoleData unit0 = propTargetUnit.transform.parent.GetChild(0).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } BattleRoleData unit1 = propTargetUnit.transform.parent.GetChild(2).GetComponent <BattleRoleData>(); bool flag1 = false; if (unit1.IsDead && isRevive) { flag1 = true; } else if (!unit1.IsDead) { flag1 = true; } if (flag1) { results.Add(unit1); } } else if (AOE == SDConstants.AOEType.Horizontal2) { BattleRoleData unit0 = propTargetUnit.transform.parent.GetChild(1).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } BattleRoleData unit1 = propTargetUnit.transform.parent.GetChild(3).GetComponent <BattleRoleData>(); bool flag1 = false; if (unit1.IsDead && isRevive) { flag1 = true; } else if (!unit1.IsDead) { flag1 = true; } if (flag1) { results.Add(unit1); } } else if (AOE == SDConstants.AOEType.Vertical) { int childId = propTargetUnit.transform.GetSiblingIndex(); int nextId; if (childId > 1) { nextId = 5 - childId; } else { nextId = 1 - childId; } //this.StartSkill(source, target); results.Add(propTargetUnit); BattleRoleData next = propTargetUnit.transform.parent.GetChild(nextId) .GetComponent <BattleRoleData>(); bool flag = false; if (next.IsDead && isRevive) { flag = true; } else if (!next.IsDead) { flag = true; } if (flag) { results.Add(next); } //this.StartSkill(source, next); } else if (AOE == SDConstants.AOEType.Vertical1) { BattleRoleData unit0 = propTargetUnit.transform.parent.GetChild(2).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } BattleRoleData unit1 = propTargetUnit.transform.parent.GetChild(3).GetComponent <BattleRoleData>(); bool flag1 = false; if (unit1.IsDead && isRevive) { flag1 = true; } else if (!unit1.IsDead) { flag1 = true; } if (flag1) { results.Add(unit1); } } else if (AOE == SDConstants.AOEType.Vertical2) { BattleRoleData unit0 = propTargetUnit.transform.parent.GetChild(0).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } BattleRoleData unit1 = propTargetUnit.transform.parent.GetChild(1).GetComponent <BattleRoleData>(); bool flag1 = false; if (unit1.IsDead && isRevive) { flag1 = true; } else if (!unit1.IsDead) { flag1 = true; } if (flag1) { results.Add(unit1); } } else if (AOE == SDConstants.AOEType.All) { BattleRoleData[] list = propTargetUnit.transform.parent .GetComponentsInChildren <BattleRoleData>(); for (int i = 0; i < list.Length; i++) { bool flag = false; if (list[i].IsDead && isRevive) { flag = true; } else if (!list[i].IsDead) { flag = true; } if (flag) { //this.StartSkill(source, list[i]); results.Add(list[i]); } } } else if (AOE == SDConstants.AOEType.Random1)//随机选择一个 { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(1, list.Count); for (int i = 0; i < _results.Count; i++) { //this.StartSkill(source, BM.All_Array[list[_results[i]]]); results.Add(BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Random2) { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(2, list.Count); for (int i = 0; i < _results.Count; i++) { results.Add(BM.All_Array[list[_results[i]]]); //this.StartSkill(source, BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Random3) { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(3, list.Count); for (int i = 0; i < _results.Count; i++) { results.Add(BM.All_Array[list[_results[i]]]); //this.StartSkill(source, BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Continuous2) { results.Add(propTargetUnit); List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } int index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); } else if (AOE == SDConstants.AOEType.Continuous3) { results.Add(propTargetUnit); List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } int index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); } else { results.Add(propTargetUnit); } return(results); }
void UsePropWithoutState(string FN, SDConstants.AOEType AOE , BattleRoleData currentActionUnit, BattleRoleData propTargetUnit) { string[] fns = FN.Split(':'); string[] fnElements = fns[0].Split('_'); string[] paramstrs = fns[1].Split(','); int p0 = 0; int p1 = 0; p0 = SDDataManager.Instance.getInteger(paramstrs[0]); if (paramstrs.Length > 1) { p1 = SDDataManager.Instance.getInteger(paramstrs[1]); } NumberData param0 = new NumberData(p0); NumberData param1 = new NumberData(p1); string functionName = fns[0]; if (functionName.Contains("addHP")) { addHp(currentActionUnit, propTargetUnit, param0 , AOE); } else if (functionName.Contains("addMP")) { addMp(currentActionUnit, propTargetUnit, param0 , AOE); } else if (functionName.Contains("addTP")) { addTp(currentActionUnit, propTargetUnit, param0 , AOE); } else if (functionName.Contains("revive")) { bool flag = false; if (propTargetUnit.IsDead) { flag = true; } else { List <BattleRoleData> lit = DealWithAOEAction(currentActionUnit , propTargetUnit, AOE); foreach (BattleRoleData unit in lit) { if (unit.IsDead) { flag = true; propTargetUnit = unit; break; } } } if (flag) { revive(currentActionUnit, propTargetUnit, param0, param1 , AOE); } } else if (functionName.Contains("catch")) { if (!propTargetUnit.IsDead && propTargetUnit.HpController.CurrentHp * 1f / propTargetUnit.HpController.MaxHp <= 0.2f) { catchSlave(currentActionUnit, propTargetUnit, param0); } } else if (functionName.Contains("remove")) { List <BattleRoleData> list = DealWithAOEAction (currentActionUnit, propTargetUnit, AOE); if (fnElements[1].ToLower() != "all") { StateTag tag = ROHelp.STATE_TAG(fnElements[1]); if (fnElements[1].ToLower() == "random") { tag = (StateTag)(UnityEngine.Random.Range(0, (int)StateTag.End)); } for (int i = 0; i < list.Count; i++) { list[i].clearPerTagStates(tag); } } else { for (int i = 0; i < list.Count; i++) { list[i].clearAllStates(); } } } else if (functionName.Contains("damage")) { damage(currentActionUnit, propTargetUnit, param0, AOE); } }
public void ChangeModelAnim(string TriggerName, bool IsLoop = false) { if (_isDead) { return; } if (TriggerName == null || TriggerName == "") { return; } if (isFinalBossModel) { if (TriggerName == anim_hurt || TriggerName == anim_attack || TriggerName == anim_die) { transform.DOShakePosition(0.2f, new Vector3(1, 1, 1)); } } current_anim_time = 0; if (_Tag == SDConstants.CharacterType.Hero || _Tag == SDConstants.CharacterType.Enemy) { string AnimName = TriggerName; if (_Tag == SDConstants.CharacterType.Hero) { HeroInfo info = SDDataManager.Instance.getHeroInfoById(CMC.id); Job career = info.Career.Career; List <string> fixedAnimNames = AllAnimations.FindAll (x => x.Contains(TriggerName)); AnimName = fixedAnimNames.Find(x => x.Contains(TriggerName)); // if (TriggerName == anim_attack) { if (career == Job.Ranger) { AnimName = fixedAnimNames.Find(x => x.Contains("2")); } else { AnimName = fixedAnimNames.Find(x => x.Contains("1")); if (AnimName == null) { AnimName = "attect-01"; } } current_anim_time = SDConstants.AnimTime_ATTACK; } if (TriggerName == anim_cast) { if (career == Job.Priest) { AnimName = fixedAnimNames.Find(x => x.Contains("3")); } else { AnimName = fixedAnimNames.Find(x => x.Contains("2")); } BattleRoleData source = GetComponentInParent <BattleRoleData>(); BattleManager BM = source.BM; SkillFunction skill = BM._currentSkill; SDConstants.AOEType aoe = skill.AOEType; if (skill.IsOmega) { AnimName = fixedAnimNames.Find(x => x.Contains("4")); } current_anim_time = SDConstants.AnimTime_CAST; } if (TriggerName == anim_jump) { AnimName = AllAnimations.Find(x => x.Contains("cast") && x.Contains("1")); } if (TriggerName == anim_die) { current_anim_time = SDConstants.AnimTime_DIE; } } else { AnimName = AllAnimations.Find(x => x.Contains(TriggerName)); if (AnimName == null) { return; } } current_anim_name = AnimName; StartCoroutine(IEChangeModelAnim(AnimName, IsLoop)); } }