public void UpdateHandWeaponType(WeaponInPackage type) { for (var i = 0; i < (int)WeaponPartLocation.EndOfTheWorld; ++i) { _attachments[i].UpdateHandWeaponType(type); } }
private void RefreshWeaponAppearance(EWeaponSlotType slot = EWeaponSlotType.Pointer) { if (slot == EWeaponSlotType.Pointer) { slot = HeldSlotType; } var weaponAgent = GetWeaponAgent(slot); if (weaponAgent.IsValid()) { WeaponPartsRefreshStruct refreshParams = new WeaponPartsRefreshStruct(); refreshParams.slot = slot; refreshParams.weaponInfo = weaponAgent.ComponentScan; // refreshParams.oldParts = new WeaponPartsStruct(); refreshParams.newParts = weaponAgent.PartsScan; refreshParams.armInPackage = true; RefreshWeaponModelAndParts(refreshParams); } else { //不移除C4 RelatedAppearence.RemoveC4(); WeaponInPackage pos = slot.ToWeaponInPackage(); RelatedAppearence.UnmountWeaponInPackage(pos); InteractController.InterruptCharactor(); } }
protected AttachmentParamData(bool isFirstPersonClass, WeaponPartLocation attachmentType, WeaponInPackage weaponType) { _isFirstPersonClass = isFirstPersonClass; AttachmentType = attachmentType; _weaponType = weaponType; Init(); }
protected WeaponParamData(bool isFirstPersonClass, WeaponInPackage type) : base(isFirstPersonClass) { Attachment = new WeaponAttachment(isFirstPersonClass, type); IsFirstPersonClass = isFirstPersonClass; Type = type; Init(); }
public void RecycleMaterial(WeaponInPackage pos) { if (null != _materials[(int)pos]) { AddRecycleObject(_materials[(int)pos]); } }
public bool DestroyWeapon(EWeaponSlotType slotType, int bagIndex, bool interrupt = true) { var weaponAgent = GetWeaponAgent(slotType, bagIndex); if (!weaponAgent.IsValid()) { return(false); } if (WeaponUtil.IsC4p(weaponAgent.ConfigId)) { RelatedAppearence.RemoveC4(); } weaponAgent.ReleaseWeapon(); //移除武器背包操作 playerWeaponAgent.RemoveBagWeapon(slotType, bagIndex); if (IsHeldBagSlotType(slotType, bagIndex)) { SetHeldSlotTypeProcess(EWeaponSlotType.None); } if (bagIndex == -1 || bagIndex == HeldBagPointer) { WeaponInPackage pos = slotType.ToWeaponInPackage(); RelatedAppearence.UnmountWeaponInPackage(pos); if (interrupt) { Interrupt(); } } return(true); }
public void UpdateWeaponInHand(WeaponInPackage type) { if (WeaponInPackage.EmptyHanded == type) { if (!InHand) { return; } MountWeaponInPackage(Character); InHand = false; } else { var needInHand = type == Type; if (InHand == needInHand) { return; } if (needInHand) { MountWeaponToHand(Character); Change(WeaponId); } else { MountWeaponInPackage(Character); } InHand = needInHand; } }
private static int GetIndexFromPos(WeaponInPackage pos) { switch (pos) { case WeaponInPackage.EmptyHanded: return((int)LatestWeaponStateIndex.EmptyHand); case WeaponInPackage.PrimaryWeaponOne: return((int)LatestWeaponStateIndex.PrimaryWeaponOne); case WeaponInPackage.PrimaryWeaponTwo: return((int)LatestWeaponStateIndex.PrimaryWeaponTwo); case WeaponInPackage.SideArm: return((int)LatestWeaponStateIndex.SideArm); case WeaponInPackage.MeleeWeapon: return((int)LatestWeaponStateIndex.MeleeWeapon); case WeaponInPackage.ThrownWeapon: return((int)LatestWeaponStateIndex.ThrownWeapon); case WeaponInPackage.TacticWeapon: return((int)LatestWeaponStateIndex.TacticWeapon); } throw new Exception(string.Format("Unexpected Exception: {0}", pos)); }
public void MountWeaponToHand(WeaponInPackage pos) { var cmd = GetAvailableCommand(); cmd.SetChangeWeaponInHand(MountWeaponToHandImpl, pos); Logger.DebugFormat("MountWeaponToHand: {0}", pos); }
public void UnmountAttachment(WeaponInPackage pos, WeaponPartLocation location) { if ((int)pos <= (int)WeaponInPackage.EndOfTheWorld && (int)location <= (int)WeaponPartLocation.EndOfTheWorld) { _weaponController.UnmountAttachment(pos, location); } }
public void MountAttachment(WeaponInPackage pos, WeaponPartLocation location, int id) { if ((int)pos <= (int)WeaponInPackage.EndOfTheWorld && (int)location <= (int)WeaponPartLocation.EndOfTheWorld) { WeaponControllerBaseImpl.MountAttachment(pos, location, id); } }
private void UpdateHandWeaponType(WeaponInPackage type) { _handWeaponType = type; for (var i = 0; i < (int)WeaponInPackage.EndOfTheWorld; ++i) { _weapons[i].UpdateHandWeaponType(_handWeaponType); } }
public void UnmountAttachment(WeaponInPackage pos, WeaponPartLocation location) { if ((int)pos <= (int)WeaponInPackage.EndOfTheWorld && (int)location <= (int)WeaponPartLocation.EndOfTheWorld) { WeaponDataBaseImpl.UnmountAttachment(pos, location); } }
public WeaponAttachment(bool isFirstPerson, WeaponInPackage weaponType) { _weaponType = weaponType; for (var i = 0; i < (int)WeaponPartLocation.EndOfTheWorld; ++i) { _attachments[i] = new AttachmentParam(isFirstPerson, (WeaponPartLocation)i, _weaponType); } }
private void MountWeaponInPackageImpl(WeaponInPackage pos, int id) { UpdateWeaponIdInPackage(pos, id); if (_predictedWeaponValue[(int)PredictedWeaponStateIndex.WeaponInHand] == (int)pos) { _predictedWeaponValue[(int)PredictedWeaponStateIndex.OverrideControllerState] = (int)OverrideControllerState.Null; } }
private void UpdateWeaponIdInPackage(WeaponInPackage pos, int id) { var index = GetIndexFromPos(pos); if (index >= 0 && index < _latestWeaponValue.Length) { _latestWeaponValue[index] = id; } }
private void DoDrawEmptyWeaponInPackage(EWeaponSlotType slotType, bool interrupt) { WeaponInPackage pos = slotType.ToWeaponInPackage(); RelatedAppearence.UnmountWeaponInPackage(pos); if (interrupt) { InteractController.InterruptCharactor(); } }
public void SetChangeAttachment(Action <WeaponInPackage, WeaponPartLocation, int> action, WeaponInPackage pos, WeaponPartLocation location, int id) { _changeWeaponAttachment = action; _weaponPosition = pos; _attachmentLocation = location; _attachment = id; }
private void ProcessMountWeaponInPackage(WeaponInPackage pos, int weaponId, int avatarId) { if (SingletonManager.Get <WeaponConfigManager>().IsC4(weaponId)) { _playerEntity.AddC4ToBag(weaponId); } else { _playerEntity.appearanceInterface.Appearance.MountWeaponInPackage(pos, avatarId); } }
public void MountWeaponToHand(WeaponInPackage pos) { if ((int)pos < (int)WeaponInPackage.EndOfTheWorld) { WeaponDataBaseImpl.MountWeaponToHand(pos); } else { Logger.ErrorFormat("error slot : slot id {0}", pos); } }
public void UnmountWeaponInPackage(WeaponInPackage pos) { if ((int)pos < (int)WeaponInPackage.EndOfTheWorld) { WeaponControllerBaseImpl.UnmountWeaponInPackage(pos); } else { Logger.ErrorFormat("error slot : slot id {0}", pos); } }
public void MountWeaponToHand(WeaponInPackage pos) { if ((int)pos < (int)WeaponInPackage.EndOfTheWorld) { _weaponController.MountWeaponToHand(pos); } else { _logger.ErrorFormat("error slot : slot id {0}", pos); } }
public void MountWeaponInPackage(GameObject weapon, GameObject character, WeaponInPackage pos, bool unMount = true) { if (weapon != null && character != null) { Transform target = null; switch (pos) { case WeaponInPackage.PrimaryWeaponOne: target = FindChildBoneFromCache(character, BoneName.PrimaryWeaponOneOnBag); if (target == null) { target = FindChildBoneFromCache(character, BoneName.PrimaryWeaponOneOnCharacter, false); } break; case WeaponInPackage.PrimaryWeaponTwo: target = FindChildBoneFromCache(character, BoneName.PrimaryWeaponTwoOnBag); if (target == null) { target = FindChildBoneFromCache(character, BoneName.PrimaryWeaponTwoOnCharacter, false); } break; case WeaponInPackage.SideArm: target = FindChildBoneFromCache(character, BoneName.SideArmOnCharacter, false); break; case WeaponInPackage.MeleeWeapon: target = FindChildBoneFromCache(character, BoneName.MeleeWeaponOnCharacter, false); break; case WeaponInPackage.ThrownWeapon: target = FindChildBoneFromCache(character, BoneName.ThrownWeaponOnCharacter, false); break; case WeaponInPackage.TacticWeapon: target = FindChildBoneFromCache(character, BoneName.TacticWeaponOnCharacter, false); break; } if (unMount) { UnmountTransform(target); } if (target != null) { weapon.transform.SetParent(target, false); weapon.transform.localPosition = Vector3.zero; weapon.transform.localRotation = Quaternion.identity; weapon.transform.localScale = Vector3.one; } } }
private void ChangeMaterial(GameObject weapon, UnityObject material, WeaponInPackage pos) { _materials[(int)pos] = material; if (null == weapon || null == material) { return; } foreach (var render in weapon.GetComponentsInChildren <MeshRenderer>()) { render.material = material.AsObject as Material; } }
public void Init() { for (var i = 0; i < _weaponIds.Length; ++i) { _weaponIds[i] = InvalidId; } for (var i = 0; i < _attachmentIds.GetLength(0); ++i) { for (var j = 0; j < _attachmentIds.GetLength(1); ++j) { _attachmentIds[i, j] = InvalidId; } } _handWeaponType = WeaponInPackage.EmptyHanded; _overrideControllerType = OverrideControllerState.Null; }
private void WeaponToHand(int weaponId, int lastWeaponId, EWeaponSlotType slot, bool armOnLeft = false) { if (WeaponUtil.IsC4p(lastWeaponId)) { weaponInteract.UnmountC4(); } if (WeaponUtil.IsC4p(weaponId)) { RelatedAppearence.MountC4(weaponId); } WeaponInPackage pos = slot.ToWeaponInPackage(); RelatedAppearence.MountWeaponToHand(pos); if (armOnLeft) { RelatedAppearence.MountP3WeaponOnAlternativeLocator(); } }
public void UnmountWeaponInPackage(GameObject character, WeaponInPackage pos) { if (character != null) { Transform target = null; switch (pos) { case WeaponInPackage.PrimaryWeaponOne: target = FindChildBoneFromCache(character, BoneName.PrimaryWeaponOneOnCharacter, false); break; case WeaponInPackage.PrimaryWeaponTwo: target = FindChildBoneFromCache(character, BoneName.PrimaryWeaponTwoOnCharacter, false); break; } UnmountTransform(target); } }
public void ChangeWeaponMaterial(WeaponInPackage pos, WeaponGameObjectData weapon, int weaponAvatarId, int personIndex) { _loadWeaponMaterialHandlers[(int)pos, personIndex].SetInfo(weapon, weaponAvatarId); var weaponAvatarManager = SingletonManager.Get <WeaponAvatarConfigManager>(); var assetInfo = weaponAvatarManager.GetTexWeapoonAsset(weaponAvatarId); if ((null == assetInfo.AssetName || assetInfo.AssetName.Equals(String.Empty)) && (null == assetInfo.BundleName || assetInfo.BundleName.Equals(String.Empty))) { Logger.ErrorFormat("ErrorWeaponAvatarId Try To ChangeWeaponMaterial id: {0}", weaponAvatarId); } else if (null != _func) { _loadRequestBatch.Add(_func.Invoke( assetInfo, _loadWeaponMaterialHandlers[(int)pos, personIndex])); } }
private void UpdateAttachmentType(WeaponInPackage pos, WeaponPartLocation location, int type) { if (WeaponInPackage.PrimaryWeaponOne != pos && WeaponInPackage.PrimaryWeaponTwo != pos && WeaponInPackage.SideArm != pos) { return; } AssertUtility.Assert( (int)WeaponPartLocation.EndOfTheWorld * 3 + (int)WeaponInPackage.EndOfTheWorld - 1 == _latestWeaponValue.Length - 1, "Add New WeaponPartLocation Or WeaponInPackage Enum"); var index = GetIndexFromPos(pos) + (int)location + 1; if (index < 0 || index >= _latestWeaponValue.Length) { return; } _latestWeaponValue[index] = type; }
public void Appearance_UnmountWeaponInPackage(WeaponInPackage pos) { entity.appearanceInterface.Appearance.UnmountWeaponInPackage(pos); }