Beispiel #1
0
    public void ShowEquip(List <EquipData> equipDataList, EquipItemCallback2 callback = null)
    {
        //1.如果当前图标数小于传进来的数据那么就添加
        //2.如果大于就失活
        if (equipDataList == null)
        {
            return;
        }

        Debug.Log("更新");
        for (int i = 0; i < equipDataList.Count; i++)
        {
            GameObject item = null;

            if (i < equipItemContent.childCount)
            {
                item = equipItemContent.GetChild(i).gameObject;
            }
            else
            {
                //实例化到场景中
                item = PoolManager.Instance.GetObj("Prafebs/UI/equipItem");
                //设置父对象
                item.transform.SetParent(equipItemContent);
                (item.transform as RectTransform).localScale = Vector3.one;
            }
            EquipItemController si = item.GetComponent <EquipItemController>();
            //初始化图标
            LocalEquipData localEquip = EquipDataModel.Instance.MyEquipData2Local(equipDataList[i]);
            si.Init(equipDataList[i], callback);
        }
        int num = equipItemContent.childCount;

        for (int i = equipDataList.Count; i < num; i++)
        {
            PoolManager.Instance.PushObj(equipItemContent.GetChild(equipDataList.Count).gameObject);
        }
    }
Beispiel #2
0
    public void UpdateEquip(Image equipImage, out bool hasEquip, out bool hasUpEquip, EquipData equip, EquipItemCallback2 callback = null)
    {
        GameObject item = null;

        if (equipImage.transform.childCount < 2)
        {
            //实例化到场景中
            item = PoolManager.Instance.GetObj("Prafebs/UI/equipItem");
            //设置父对象
            item.transform.SetParent(equipImage.transform);
            item.transform.localScale    = Vector3.one;
            item.transform.localPosition = Vector3.zero;
        }
        else
        {
            item = equipImage.transform.GetChild(1).gameObject;
        }
        EquipItemController si = item.GetComponent <EquipItemController>();

        si.Init(equip, callback);
        hasEquip   = true;
        hasUpEquip = true;
    }
Beispiel #3
0
        public async void AvailableItemEquipped()
        {
            var itemMetaId  = "Test_AvailableItemEquipped";
            var itemSlot    = "Test_AvailableItemEquipped";
            var classMetaId = "Test_AvailableItemEquipped";
            var playerId    = "Test_AvailableItemEquipped";

            // Create test class meta if it doesn't exist.
            var classMeta = await new ClassMeta(classMetaId).LoadAsync();

            if (classMeta == null)
            {
                classMeta = new ClassMeta(classMetaId);
                await classMeta.InsertAsync();
            }

            // Create test item meta if it doesn't exist.
            var itemMeta = await new ItemMeta(itemMetaId).LoadAsync();

            if (itemMeta == null)
            {
                itemMeta               = new ItemMeta(itemMetaId);
                itemMeta.ClassMetaId   = classMetaId;
                itemMeta.EquipmentSlot = itemSlot;
                await itemMeta.InsertAsync();
            }

            // Create test player with a character and item.
            var player = await Helpers.CreateTestPlayer(playerId);

            var character = new Character(classMetaId);

            player.Characters.Add(character);
            var item = new Item(itemMetaId);

            player.AddItem(item);
            await player.ReplaceAsync();

            // Auth player.
            var sessionToken = Helpers.GetSessionToken(playerId);

            // Mock data.
            var data = JToken.Parse($@"{{
                'PlayerId':'{playerId}',
                'SessionToken':'{sessionToken}',
                'CharacterId':'{character.Id}',
                'ItemId':'{item.Id}'
            }}");

            // Execute controller.
            var controller    = new EquipItemController();
            var responseToken = await controller.HandleHttpRequestAsync(data);

            // Assert controller response status is OK.
            Assert.Equal(responseToken["Status"], JStatus.Ok.JToken["Status"]);

            // Make sure item is equiped.
            player = await player.LoadAsync();

            Assert.True(player.GetItemById(item.Id).IsOwnedByCharacter);
            Assert.True(player.GetItemById(item.Id).OwningCharacterId == character.Id);
        }