Beispiel #1
0
        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);
        }
Beispiel #3
0
        /// <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);
        }