private void RefreshHeldWeaponAttachment() { if (!processHelper.FilterRefreshWeapon()) { return; } var baseComp = HeldWeaponAgent.ComponentScan; var attachments = WeaponPartUtil.CreateParts(baseComp); ApperanceRefreshABreath(HeldWeaponAgent.BreathFactor); // 添加到背包的时候会执行刷新模型逻辑 ModelRefreshWeaponModel(baseComp.ConfigId, HeldSlotType, attachments); }
/// <summary> /// 手雷武器替换操作:当前ConfigId必须已存在于库存,将手雷ENity替换 为当前configId /// </summary> /// <param name="Owner"></param> /// <param name="orient"></param> /// <param name="refreshParams"></param> /// <returns></returns> public override WeaponEntity ReplaceWeapon(EntityKey Owner, WeaponScanStruct orient, ref WeaponPartsRefreshStruct refreshParams) { if (_bagCacheHandler.ShowCount(orient.ConfigId) == 0) { return(null); } refreshParams.lastWeaponKey = WeaponKey; ReleaseWeapon(); _bagCacheHandler.SetCurr(orient.ConfigId); WeaponPartsStruct parts = WeaponPartUtil.CreateParts(orient); refreshParams.weaponInfo = orient; refreshParams.slot = handledSlot; refreshParams.oldParts = new WeaponPartsStruct(); refreshParams.newParts = parts; refreshParams.armInPackage = true; return(_bagCacheHandler.GrenadeEntity); }
/// <summary> /// release old weapon and create new one /// </summary> /// <param name="weaponSlotAgent"></param> /// <param name="Owner"></param> /// <param name="orient"></param> /// <param name="refreshParams"></param> /// <returns></returns> public override WeaponEntity ReplaceWeapon(EntityKey Owner, WeaponScanStruct orient, ref WeaponPartsRefreshStruct refreshParams) { refreshParams.lastWeaponKey = WeaponKey; ReleaseWeapon(); var newEnity = WeaponEntityFactory.CreateEntity(orient); newEnity.SetRetain(Owner); // DebugUtil.LogInUnity("add new weapon :{0}", DebugUtil.DebugColor.Blue, newEnity.entityKey.Value); if (orient.AvatarId < 1) { orient.AvatarId = SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(orient.ConfigId).AvatorId; } WeaponPartsStruct parts = WeaponPartUtil.CreateParts(orient); refreshParams.weaponInfo = orient; refreshParams.slot = handledSlot; refreshParams.oldParts = new WeaponPartsStruct(); refreshParams.newParts = parts; refreshParams.armInPackage = true; return(newEnity); }