void Start() { mHero = transform.parent.GetComponent<Hero_Control>(); if (mHero == null) { Debug.LogError("Class : HeroActionEvent => mHero is null"); } }
void SearchTarget() { if (mTarget == null) { mTarget = GetAggroHero(); //if (mTarget == null) //{ // mActor.PlayAnimation(Actor.AnimationActor.ANI_IDLE, true); //} //mActor.PlayAnimation(Actor.AnimationActor.ANI_IDLE); } else { //if (AttRangeCheck()) //{ // mHeroState = eHeroState.HEROSTATE_ATT; //} //else { mHeroState = eHeroState.HEROSTATE_WALK; } } }
eAttPos MoveDir(Hero_Control targetHero, ref int iCount) { Battle_Control bc = GameMain.Instance().BattleControl; if (bc == null) return eAttPos.ATTPOS_NONE; eAttPos eResultPos = eAttPos.ATTPOS_NONE; bool bPosLeft = false; Vector3 vDir = targetHero.transform.position - transform.position; if (vDir.x > 0) { bPosLeft = true; } if (MyTeam) { mListAttPos = bc.ListMyHeroes; } else { mListAttPos = bc.ListEnemyHeroes; } int iLeftAttPosCount = 0; int iRightAttPosCount = 0; for (int i = 0; i < mListAttPos.Count; ++i) { if (mListAttPos[i] == this) continue; if (mListAttPos[i].AttPos == eAttPos.ATTPOS_NONE) continue; if (mListAttPos[i].Target == null) continue; if (targetHero.HeroUid.Equals(mListAttPos[i].Target.HeroUid)) { if ((int)mListAttPos[i].AttPos < (int)eAttPos.ATTPOS_RIGHT) { iLeftAttPosCount++; } else { iRightAttPosCount++; } } } if (bPosLeft) { if (iLeftAttPosCount == ATTPOS_MAXCOUNT) { iCount = iRightAttPosCount; eResultPos = eAttPos.ATTPOS_RIGHT; } else { iCount = iLeftAttPosCount; eResultPos = eAttPos.ATTPOS_LEFT; } } else { if (iRightAttPosCount == ATTPOS_MAXCOUNT) { iCount = iLeftAttPosCount; eResultPos = eAttPos.ATTPOS_LEFT; } else { iCount = iRightAttPosCount; eResultPos = eAttPos.ATTPOS_RIGHT; } } return eResultPos; }
void FaceTo(Hero_Control targetHero) { Vector3 vDir = targetHero.transform.position - transform.position; if (vDir.x > 0) { HeroObj.transform.localRotation = Quaternion.Euler(0, 180, 0); } else { HeroObj.transform.localRotation = Quaternion.Euler(0, 0, 0); } }
bool DamagedHero(Hero_Control atthero, int iSkillNo) { // if(immune) return false HP -= atthero.Atk; BattleUI_Control bcUI = UIManager.Instance().GetBattleUI() as BattleUI_Control; if (bcUI == null) return false; float amount = (float)HP / (float)MaxHP; bcUI.UpdateHPGauge(mHeroUid, amount); Vector3 vPos = Camera.main.WorldToScreenPoint(mEf_HP.position); Vector3 vPos1 = UIManager.Instance().ScreenToWorldPoint(vPos); bcUI.CreateDamage(atthero.Atk, vPos1, mMyTeam); if (mMyTeam) { SoundManager.Instance().PlaySoundOnce("OgreHit"); } else { SoundManager.Instance().PlaySoundOnce("HeroHit"); } if (!mMyTeam) { GameObject goEfc = EffectManager.Instance().GetEffect(EffectManager.eEffectType.EFFECT_BATTLE_HIT); if (goEfc != null) { Transform tCen = HeroObj.transform.FindChild("ef_HitEfc"); if (tCen != null) { Battle_Control bc = GameMain.Instance().BattleControl; Transform tEffect = bc.transform.FindChild("Effect"); goEfc.transform.parent = tEffect; goEfc.transform.localPosition = tCen.position; //goEfc.transform.localScale = new Vector2(2, 2); Renderer[] pcs = goEfc.GetComponentsInChildren<Renderer>(); if (pcs != null) { for (int i = 0; i < pcs.Length; ++i) { Renderer render = pcs[i]; if (render != null) { render.sortingOrder = MaxSortingOrderNo; render.sortingLayerName = "Hero"; } } } //ParticleSystem[] pcs = goEfc.GetComponentsInChildren<ParticleSystem>(); //if (pcs != null) //{ // for (int i = 0; i < pcs.Length; ++i) // { // Renderer render = pcs[i].GetComponent<Renderer>(); // if (render != null) // { // render.sortingOrder = MaxSortingOrderNo; // render.sortingLayerName = "Hero"; // } // } //} } } } if (HP <= 0) { mHeroState = eHeroState.HEROSTATE_DIE; return false; } else { Vector3 vDir = atthero.transform.position - transform.position; vDir.Normalize(); if (vDir.x > 0) { mBlowDir = 1; } else { mBlowDir = -1; } mBlowTime = atthero.BlowPower; } return true; }
public void OnBeHit(Hero_Control atthero, int iSkillNo ) { if (IsDie) return; if (DamagedHero(atthero, iSkillNo)) { StartCoroutine(DamagedHeroColor(0.1f)); //mHeroState = eHeroState.HEROSTATE_HIT; } }