public void Start() { _petVo = MeController.GetMeVoByType <PetVo>(); _talentSkillVo = BaseDataMgr.instance.GetSysSkillBaseVo(_petVo.SkillId); if (_talentSkillVo != null) { _talentSkillActionVo = BaseDataMgr.instance.GetSysSkillActionVo(_talentSkillVo.skill_group); } _masterVo = _petVo.MasterVo; _masterDisplay = _petVo.MasterDisplay; }
/// <summary> /// 攻击伤害检测 /// </summary> public bool CheckDamage(Vector3 effectPosition, int index) { SysSkillBaseVo skillVo = CurrentSkillVo; print(skillVo.unikey); if (!MeController.Me.IsUsing) { return(false); } bool result = false; switch (MeController.Me.Type) { case DisplayType.PET: result = DamageCheck.Instance.CheckPetInjured2D(MeController, skillVo, effectPosition, _selfTransform.position, MeController.Me.CurFaceDire, GetEnemyDisplay(), _currentActionVo.IsBullet, _checkedTime, index, AppMap.Instance.mapParser.NeedSyn); break; case DisplayType.ROLE: //主角攻击的伤害检测 bool needSyn = AppMap.Instance.mapParser.NeedSyn; if (MeController.GetMeVo().Id == AppMap.Instance.me.GetVo().Id) { result = DamageCheck.Instance.CheckMeInjured2D(MeController, skillVo, effectPosition, _selfTransform.position, MeController.Me.CurFaceDire, GetEnemyDisplay(), _currentActionVo.IsBullet, _checkedTime, index, needSyn); if (result) { CameraEffectManager.NormalAttackShake(); if (MeVo.instance.CurMp < MeVo.instance.Mp) { MeVo.instance.CurMp += 1; } PlayBeAttackedSound(skillVo.unikey); //播放受击音效 } } else { //其他玩家攻击的伤害检测 var playerVo = MeController.GetMeVoByType <PlayerVo>(); result = DamageCheck.Instance.CheckPlayerInjured2D(MeController, skillVo, playerVo, effectPosition, _selfTransform.position, MeController.Me.CurFaceDire, GetEnemyDisplay(), _currentActionVo.IsBullet, _checkedTime, index, needSyn); if (!needSyn && result) { if (playerVo.CurMp < playerVo.Mp) { playerVo.CurMp += 1; } } } break; case DisplayType.MONSTER: //怪物攻击的碰撞检测 result = DamageCheck.Instance.MonsterCheckInjured2D(MeController, skillVo, effectPosition, _selfTransform.position, MeController.Me.CurFaceDire, (MeController.Me.GetVo() as MonsterVo), index); if (MeController.Me.DefenceEffect != null) { MeController.Me.DefenceEffect.transform.position = Vector3.one * 1000; } break; case DisplayType.Trap: DamageCheck.Instance.TrapCheckInjured2D(skillVo, effectPosition, MeController.Me.CurFaceDire, (MeController.GetMeByType <TrapDisplay>().BoxCollider2D)); break; } if (skillVo.shake && MeController.GetMeVo().Id == MeVo.instance.Id) { CameraEffectManager.ShakeCamera(0, 0.6f); //增加技能震屏效果 } if (result) { _checkedTime++; } return(result); }