public override void Attack() { Collider[] targets = SearchAttactTarget(); if (targets == null || targets[0].transform == null) { return; } switch (m_attackLevel) { case ModelAttackLevel.Normal: case ModelAttackLevel.SkillOne: PlaySkillAnimator(Vector3.zero); break; case ModelAttackLevel.SkillTwo: case ModelAttackLevel.SkillThree: PlaySkillAnimator(targets[0].transform.position); break; } for (int i = 0; i < targets.Length; i++) { if (targets[i] == null) { continue; } ModelAttackData attackData = new ModelAttackData(RoleType.Player, (int)PlayerType.Master, m_attackLevel, m_gameObject.name, targets[i].name); EventManager.Dispatch(GameMoudle.Monster, GameEvent.Type.Damage, attackData); } }
public override void Attack() { Collider[] colliders = Physics.OverlapSphere(m_transform.position, m_attackDis, LayerMask.GetMask(GameLayerInfo.Player.ToString())); for (int i = 0; i < colliders.Length; i++) { if (colliders[i].tag != GameTagInfo.Player.ToString()) { continue; } Vector3 selfToTarget = colliders[i].transform.position - m_transform.position; if (selfToTarget.magnitude > m_attackDis) { continue; } float selfToTargetAngle = Vector3.Angle(selfToTarget, m_transform.forward); if (selfToTargetAngle > m_attackAngle) { continue; } ModelAttackData attackData = new ModelAttackData(RoleType.Monster, (int)m_type, m_attackLevel, gameObject.name, colliders[i].name); EventManager.Dispatch(GameMoudle.Player, GameEvent.Type.Damage, attackData); return; } }
private void OnTriggerEnter(Collider collider) { ModelAttackData attackData = new ModelAttackData(RoleType.Player, (int)PlayerType.Master, ModelAttackLevel.Normal, m_gameObject.name, collider.name); EventManager.Dispatch(GameMoudle.Monster, GameEvent.Type.Damage, attackData); }
public override float Damage(ModelAttackData data) { float percent = base.Damage(data); DebugTool.Log("ModelPlayer::Damage " + m_healthPoint.ToString()); return(percent); }
private void Damage(object arg) { ModelAttackData data = (ModelAttackData)arg; float percent = m_player.Damage(data); m_playerView.UpdateHP(percent); }
public override float Damage(ModelAttackData data) { float percent = base.Damage(data); DebugTool.Log("ModelMonster::Damage " + m_healthPoint.ToString()); if (m_target == null) { m_target = GameSceneManager.GetNode <Transform>(data.sender); } m_selectObj.SetActive(true); TimerManager.Register(1, () => m_selectObj.SetActive(false)); return(percent); }
public void Damage(object arg) { ModelAttackData data = (ModelAttackData)arg; ModelMonster monster = GetMonster(data.receiver); if (monster == null || monster.gameObject == null) { return; } float hpPercent = monster.Damage(data); KeyValuePair <string, float> hpData = new KeyValuePair <string, float>(monster.gameObject.name, hpPercent); EventManager.Dispatch(GameMoudle.Player, GameEvent.Type.MonsterDamage, hpData); }
public virtual float Damage(ModelAttackData data) { int damage = data.Damage; KeyValuePair <Vector3, int> message = new KeyValuePair <Vector3, int>(transform.position, damage); EventManager.Dispatch(GameMoudle.Player, GameEvent.Type.ShowDamageText, message); m_healthPoint -= damage; SRoleState.Type state; if (IsHPZero) { state = SRoleState.Type.SRoleDeath; } else { state = SRoleState.Type.SRoleDamage; } State = state; PlayDamageEffect(); return(m_healthPoint.Percent); }