コード例 #1
0
            private void ProcessSimpleEquipment(SceneObjectEntity entity, RayCastTarget target)
            {
                var equip    = entity.simpleEquipment;
                var category = entity.simpleEquipment.Category;
                var entityId = entity.entityKey.Value.EntityId;

                SceneObjCastData.Make(target, entityId, equip.Id, equip.Count, category);
                switch ((ECategory)category)
                {
                case ECategory.Weapon:
                    var weaponCfg = SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(equip.Id);
                    if (null == weaponCfg)
                    {
                        break;
                    }

                    var weaponType = (EWeaponType_Config)weaponCfg.Type;
                    if (weaponType.CanAutoPick())
                    {
                        EnableAutoPickup(entityId, target.gameObject);
                    }

                    break;

                default:
                    break;
                }
            }
コード例 #2
0
            private void ProcessWeapon(SceneObjectEntity entity, RayCastTarget target)
            {
                var weapon   = entity.weaponObject;
                var entityId = entity.entityKey.Value.EntityId;

                SceneObjCastData.Make(target, entityId, weapon.ConfigId, 1, (int)ECategory.Weapon);
                var weaponType = (EWeaponType_Config)SingletonManager
                                 .Get <WeaponResourceConfigManager>().GetConfigById(weapon.ConfigId)
                                 .Type;

                if (weaponType.CanAutoPick())
                {
                    EnableAutoPickup(entityId, target.gameObject);
                }
            }
コード例 #3
0
        private void ProcessWeaonCastSetting(SceneObjectEntity entity, RayCastTarget target)
        {
            var weapon   = entity.weaponObject;
            var entityId = entity.entityKey.Value.EntityId;

            SceneObjCastData.Make(target, entityId, weapon.ConfigId, entity.hasSimpleItem ? entity.simpleItem.Count : 1, (int)ECategory.Weapon);

            /*var weaponType = (EWeaponType_Config) SingletonManager
             *                                    .Get<WeaponResourceConfigManager>().GetConfigById(weapon.ConfigId)
             *                                    .Type;
             * if (weaponType.CanAutoPick())
             * {
             *  EnableAutoPickup(entityId, target.gameObject);
             * }*/
        }
コード例 #4
0
        public override void OnAction()
        {
            var entityId = SceneObjCastData.EntityId(_pointerData.IdList);
            var category = SceneObjCastData.Category(_pointerData.IdList);
            var itemId   = SceneObjCastData.ItemId(_pointerData.IdList);
            var count    = SceneObjCastData.Count(_pointerData.IdList);
            var player   = _playerContext.flagSelfEntity;

            if (null == player)
            {
                return;
            }
            player.stateInterface.State.InterruptAction();
            player.stateInterface.State.PickUp();
            player.ModeController().SendPickup(player.WeaponController(), entityId, itemId, category, count);
        }
コード例 #5
0
        protected override void DoSetData(PointerData data)
        {
            _pointerData = data;
            var entityId = SceneObjCastData.EntityId(_pointerData.IdList);
            var sceneObj = _sceneObjectContext.GetEntityWithEntityKey(new Core.EntityComponent.EntityKey(entityId, (short)EEntityType.SceneObject));

            if (null != sceneObj)
            {
                if (!sceneObj.hasPosition)
                {
                    Logger.Error("sceneobject has no postion");
                    return;
                }
                var player = _playerContext.flagSelfEntity;
                if (!player.hasPosition)
                {
                    Logger.Error("player has no position");
                    return;
                }
                if (IsUntouchable(sceneObj, player))
                {
                    return;
                }
                if (!sceneObj.IsCanPickUpByPlayer(player))
                {
                    return;
                }
                if (player.hasGamePlay && !player.gamePlay.CanAutoPick())
                {
                    return;
                }
            }
            else
            {
                return;
            }
            var itemId   = SceneObjCastData.ItemId(_pointerData.IdList);
            var count    = SceneObjCastData.Count(_pointerData.IdList);
            var category = SceneObjCastData.Category(_pointerData.IdList);

            switch ((ECategory)category)
            {
            case ECategory.Weapon:
                var itemCfg = SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(itemId);
                if (null != itemCfg)
                {
                    if (itemCfg.Type == (int)EWeaponType_Config.ThrowWeapon)
                    {
                        Tip = string.Format(ScriptLocalization.client_actiontip.pickup, itemCfg.Name, string.Format("({0})", count));
                    }
                    else
                    {
                        Tip = string.Format(ScriptLocalization.client_actiontip.pickandequip, itemCfg.Name);
                    }
                }
                else
                {
                    Tip = string.Format("weapon {0} doesn't exist ", itemId);
                }
                break;

            case ECategory.Avatar:
                var equip = SingletonManager.Get <RoleAvatarConfigManager>().GetConfigById(itemId);
                if (null != equip)
                {
                    Tip = string.Format(ScriptLocalization.client_actiontip.pickandequip, equip.Name);
                }
                else
                {
                    Tip = string.Format("avatar {0} doesn't exist ", itemId);
                }
                break;

            case ECategory.WeaponPart:
                var part = SingletonManager.Get <WeaponPartSurvivalConfigManager>().FindConfigBySetId(itemId);
                if (null != part)
                {
                    Tip = string.Format(ScriptLocalization.client_actiontip.pickup, part.Name, "");
                }
                else
                {
                    Tip = string.Format("part {0} doesn't exist", itemId);
                }
                break;

            case ECategory.GameItem:
                var item = SingletonManager.Get <GameItemConfigManager>().GetConfigById(itemId);
                if (null != item)
                {
                    Tip = string.Format(ScriptLocalization.client_actiontip.pickup, item.Name, string.Format("({0})", count));
                }
                else
                {
                    Tip = string.Format("item {0} doesn't exist", itemId);
                }
                break;

            default:
                Tip = string.Format("EntityId {0} ItemId {1} do not exist in config ", entityId, itemId);
                break;
            }
        }