private void OnAItypeUpdate(int type) { int cout = Ok_heros.Count; int Maxtemp = -1; int FinishHerovalue = -1; //最终释放技能英雄的索引 SpellAILogic FinishAi = null; //最终释放技能模板 for (int i = 0; i < cout; ++i) { SpellAILogic temp = ChooseAILogicPriority(Ok_heros[i], type);//获取能释放技能的有效优先级 if (temp != null) { HerosSpellAILogicList.Add(temp); AIOk_heros.Add(Ok_heros[i]); } } int cout2 = HerosSpellAILogicList.Count; for (int i = 0; i < cout2; ++i) { if (HerosSpellAILogicList[i].GetPriority() > Maxtemp) { Maxtemp = HerosSpellAILogicList[i].GetPriority(); FinishAi = HerosSpellAILogicList[i]; FinishHerovalue = i; } } if (FinishHerovalue >= 0) { if (SceneObjectManager.GetInstance().GetIsFireSignState() && SceneObjectManager.GetInstance().GetFireSighCreatrue() != null) { AIOk_heros[FinishHerovalue].SetSkillLockTarget(SceneObjectManager.GetInstance().GetFireSighCreatrue()); } else { AIOk_heros[FinishHerovalue].SetSkillLockTarget(FinishAi.GetSkillTag()); } if (AIOk_heros[FinishHerovalue].OnPre_CheckUseSkillCondtion()) { //AIOk_heros[FinishHerovalue].OnSkillConsume(); //AIOk_heros[FinishHerovalue].SetObjectActionState(ObjectCreature.ObjectActionState.skillAttack); //string name = FinishAi.GetSkillInfo().GetSpellRow().getSkillNameRes(); //SkillShowNamePackage package = new SkillShowNamePackage(AIOk_heros[FinishHerovalue].GetGuid(), name); //GameEventDispatcher.Inst.dispatchEvent(GameEventID.F_ShowSkillName, package); AIOk_heros[FinishHerovalue].LaunchFreeSpellLogic(EM_SPELL_PASSIVE_INDEX.EM_SPELL_PASSIVE_INITIATIVE); } else { AIOk_heros[FinishHerovalue].SetSkillLockTarget(null); } //Debug.Log(AIOk_heros[FinishHerovalue].GetGameObject().name); } }
public void SelectSpellTarget(ObjectHero objHero) { ReturnData(); SpellAILogic FinishAi = ChooseAILogicPriority(objHero, (int)EM_SPELL_AI_TYPE.EM_SPELL_AI_TYPE_NORMAL, (int)objHero.GetLaunchFreeSpellIndex());//获取能释放技能的有效优先级 if (SceneObjectManager.GetInstance().GetIsFireSignState() && SceneObjectManager.GetInstance().GetFireSighCreatrue() != null) { objHero.SetSkillLockTarget(SceneObjectManager.GetInstance().GetFireSighCreatrue()); } else { objHero.SetSkillLockTarget(FinishAi.GetSkillTag()); } }