public static bool MayHasPart(this EWeaponType_Config weaponType) { switch (weaponType) { case EWeaponType_Config.PrimeWeapon: case EWeaponType_Config.SubWeapon: return(true); default: return(false); } }
public static bool CanAutoPick(this EWeaponType_Config weaponType) { return(weaponType != EWeaponType_Config.ThrowWeapon); //switch (weaponType) //{ // case EWeaponType_Config.: // case EWeaponType_Config.PrimeWeapon: // case EWeaponType_Config.SubWeapon: // case EWeaponType_Config.TacticWeapon: // return true; // default: // return false; //} }
private string GetDurableTypeText(EWeaponType_Config type) { switch (type) { case EWeaponType_Config.Armor: return("防弹衣"); case EWeaponType_Config.Helmet: return("头盔"); default: return(string.Empty); } }
public virtual void AutoPickupWeapon(PlayerEntity player, List <int> sceneKeys) { for (int i = 0; i < sceneKeys.Count; i++) { SceneObjectEntity sceneEntity = sceneObjectEntityFactory.GetSceneEntity(sceneKeys[i]) as SceneObjectEntity; //sceneKeys.Remove(sceneKeys[i]); if (sceneEntity == null || !sceneEntity.hasWeaponObject) { Logger.Warn("sceneEntity null failed"); return; } EWeaponType_Config configType = (EWeaponType_Config)SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(sceneEntity.weaponObject.ConfigId).Type; if (!configType.CanAutoPick()) { Logger.Warn("CanAutoPick failed"); return; } if (configType == EWeaponType_Config.TacticWeapon && !sceneEntity.IsCanPickUpByPlayer(player)) { Logger.Warn("IsCanPickUpByPlayer failed"); return; } var newWeaponScan = (WeaponScanStruct)sceneEntity.weaponObject; bool pickupResult = player.WeaponController().AutoPickUpWeapon(newWeaponScan); if (!pickupResult) { Logger.Warn("pickupResult failed"); return; } sceneObjectEntityFactory.DestroySceneWeaponObjectEntity(sceneEntity.entityKey.Value); if (player.WeaponController().HeldConfigId == sceneEntity.weaponObject.ConfigId) { player.stateInterface.State.PickUp(); } IEventArgs args = commonSession.FreeArgs as IEventArgs; if (null != args) { TriggerArgs ta = new TriggerArgs(); ta.AddPara(new IntPara("weaponId", sceneEntity.weaponObject.ConfigId)); ta.AddUnit("current", (FreeData)player.freeData.FreeData); args.Trigger(FreeTriggerConstant.WEAPON_PICKUP, ta); } } }
internal EWeaponSlotType GetMatchedSlotType(EWeaponType_Config weaponType) { switch (weaponType) { case EWeaponType_Config.PrimeWeapon: var hasPrime = !Getter.IsWeaponSlotEmpty(EWeaponSlotType.PrimeWeapon); if (hasPrime && Getter.ModeController.IsSlotValid(EWeaponSlotType.SecondaryWeapon)) { return(EWeaponSlotType.SecondaryWeapon); } return(EWeaponSlotType.PrimeWeapon); default: return(weaponType.ToWeaponSlot()); } }
int TypeToSlot(EWeaponType_Config type) { var slot = 0; switch (type) { case EWeaponType_Config.PrimeWeapon: slot = 1; break; case EWeaponType_Config.SubWeapon: slot = 3; break; case EWeaponType_Config.ThrowWeapon: slot = 5; break; case EWeaponType_Config.MeleeWeapon: slot = 4; break; } return(slot); }
public void AutoPickupWeapon(PlayerEntity player, List <int> sceneKeys) { for (int i = 0; i < sceneKeys.Count; i++) { SceneObjectEntity sceneEntity = sceneObjectEntityFactory.GetSceneEntity(sceneKeys[i]) as SceneObjectEntity; if (sceneEntity == null || !sceneEntity.hasWeaponObject || sceneEntity.isFlagDestroy) { continue; } EWeaponType_Config configType = (EWeaponType_Config)SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(sceneEntity.weaponObject.ConfigId).Type; if (!configType.CanAutoPick()) { continue; } if (configType == EWeaponType_Config.TacticWeapon && !sceneEntity.IsCanPickUpByPlayer(player)) { continue; } var newWeaponScan = (WeaponScanStruct)sceneEntity.weaponObject; bool pickupResult = player.WeaponController().AutoPickUpWeapon(newWeaponScan); if (!pickupResult) { continue; } sceneObjectEntityFactory.DestroySceneWeaponObjectEntity(sceneEntity.entityKey.Value); if (player.WeaponController().HeldConfigId == sceneEntity.weaponObject.ConfigId && SharedConfig.IsServer) { PlayerAnimationAction.DoAnimation(null, PlayerAnimationAction.PickUp, player, true); } IEventArgs args = commonSession.FreeArgs as IEventArgs; if (null != args) { TriggerArgs ta = new TriggerArgs(); ta.AddPara(new IntPara("weaponId", sceneEntity.weaponObject.ConfigId)); ta.AddUnit("current", (FreeData)player.freeData.FreeData); args.Trigger(FreeTriggerConstant.WEAPON_PICKUP, ta); } } }
public static EWeaponSlotType ToWeaponSlot(this EWeaponType_Config weaponType) { switch (weaponType) { case EWeaponType_Config.PrimeWeapon: return(EWeaponSlotType.PrimeWeapon); case EWeaponType_Config.SubWeapon: return(EWeaponSlotType.PistolWeapon); case EWeaponType_Config.MeleeWeapon: return(EWeaponSlotType.MeleeWeapon); case EWeaponType_Config.ThrowWeapon: return(EWeaponSlotType.ThrowingWeapon); case EWeaponType_Config.TacticWeapon: return(EWeaponSlotType.TacticWeapon); default: return(EWeaponSlotType.None); } }
public static bool CanAutoPick(this EWeaponType_Config weaponType) { return(weaponType != EWeaponType_Config.ThrowWeapon); }
public static bool CanAutoPick(this EWeaponType_Config weaponType) { return(weaponType != EWeaponType_Config.ThrowWeapon && weaponType != EWeaponType_Config.Armor && weaponType != EWeaponType_Config.Helmet); }