void ThrowGrenade() { if (null != grenade && null != skillCmpt) { int itemCost = grenade.itemCost ? 1 : 0; if (GameConfig.IsMultiMode) { PlayerNetwork.mainPlayer.RequestThrow(motionMgr.Entity.Id, grenade.m_ItemObj.instanceId, itemCost); } else { grenade.m_ItemObj.stackCount -= itemCost; } SkillSystem.ShootTargetPara target = new SkillSystem.ShootTargetPara(); if (null != ikCmpt) { target.m_TargetPos = ikCmpt.aimTargetPos; } else { target.m_TargetPos = motionMgr.Entity.position + motionMgr.Entity.forward; } skillCmpt.StartSkill(targetEntity, grenade.m_SkillID, target); if (null != grenade.m_Model) { grenade.m_Model.SetActive(false); } } }
void OnFire(float magazineCost, int skillIndex = 0) { if (null != gun && null != gun.m_AimAttr && null != gun.m_AimAttr.m_AimTrans && null != gun.ItemObj && null != entity && null != skillCmpt && null != gun.m_AttackMode) { skillCmpt.StartSkill(skillCmpt, gun.m_ShootSoundID); // AudioManager.instance.Create(gun.m_AimAttr.m_AimTrans.position, // gun.m_ShootSoundID, // gun.m_AimAttr.m_AimTrans); SkillSystem.ShootTargetPara target = new SkillSystem.ShootTargetPara(); if (null != ikAim) { target.m_TargetPos = ikAim.targetPos; } else { target.m_TargetPos = entity.position + entity.forward; } skillCmpt.StartSkill(targetEntity, gun.GetSkillID(skillIndex), target); if (PeGameMgr.IsSingle) { if (!(m_IgnoreItem && gun.m_AmmoType == AmmoType.Energy)) { gun.magazineValue -= magazineCost; } } else { if (!m_IgnoreItem && null != PlayerNetwork.mainPlayer) { PlayerNetwork.mainPlayer.RequestAttrChanged(entity.Id, gun.ItemObj.instanceId, magazineCost, gun.curItemID); } } m_LastShootTime = Time.time; if (m_EndAfterShoot && null != motionMgr) { motionMgr.EndAction(ActionType); } entity.SendMsg(EMsg.Battle_EquipAttack, gun.ItemObj); if (!PeGameMgr.IsMulti) { if (gun.m_AttackMode.Length > 0) { entity.SendMsg(EMsg.Battle_OnAttack, gun.m_AttackMode[0], gun.transform, gun.curItemID); } } } }
public override void DoAction(PEActionParam para = null) { if (null == skillCmpt || null == bow) { return; } SkillSystem.ShootTargetPara target = new SkillSystem.ShootTargetPara(); if (null != ikAim) { target.m_TargetPos = ikAim.targetPos; } else { target.m_TargetPos = motionMgr.transform.forward; } if (null != skillCmpt.StartSkill(targetEntity, bow.skillID, target)) { if (GameConfig.IsMultiMode) { NetworkInterface net = NetworkInterface.Get(motionMgr.Entity.Id); if (null != net && net.hasOwnerAuth) { if (!m_IgnoreItem) { PlayerNetwork.mainPlayer.RequestItemCost(motionMgr.Entity.Id, bow.curItemID, 1); } } } else { if (null != packageCmpt && !m_IgnoreItem) { packageCmpt.Destory(bow.curItemID, 1); } } bow.SetArrowShowState(false); bow.SetBowOpenState(false); motionMgr.Entity.SendMsg(EMsg.Battle_EquipAttack, bow.ItemObj); if (null != bow.m_AttackMode) { motionMgr.Entity.SendMsg(EMsg.Battle_OnAttack, bow.m_AttackMode[0], bow.transform, bow.curItemID); } } }