public override SingleItemInfo GetCurSelectedWeaponInfo()
    {
        SingleItemInfo itemInfo = null;

        switch (CurrentSelected)
        {
        case 0:
            itemInfo = null;
            break;

        case 1:
            itemInfo = BagManager.Instance.Weapon1;
            break;

        case 2:
            itemInfo = BagManager.Instance.Weapon2;
            break;

        case 3:
            itemInfo = BagManager.Instance.Magic1;
            break;

        case 4:
            itemInfo = BagManager.Instance.Magic2;
            break;
        }
        return(itemInfo);
    }
        void LoadObtainedProgressionItemsFromSave(Level level)
        {
            var itemsInMap = this.Select(l => l.ItemInfo.Identifier)
                             .Distinct().ToHashSet();

            var updateTracker = false;

            foreach (var progressionItem in UnlockingMap.AllProgressionItems)
            {
                if (level.GameSave.HasItem(progressionItem) && !itemsInMap.Contains(progressionItem))
                {
                    var item = new SingleItemInfo(UnlockingMap, progressionItem);

                    item.OnPickup(level);

                    Add(new ExternalItemLocation(item));

                    updateTracker = true;
                }
            }

            if (updateTracker)
            {
                ItemTrackerUplink.UpdateState(ItemTrackerState.FromItemLocationMap(this));
            }
        }
예제 #3
0
        public void Should_equal()
        {
            var a = new SingleItemInfo(new ItemUnlockingMap(Seed.Zero), new ItemIdentifier(EInventoryRelicType.Dash));
            var b = new SingleItemInfo(new ItemUnlockingMap(Seed.Zero), new ItemIdentifier(EInventoryRelicType.Dash));

            Assert.That(a, Is.EqualTo(b));
        }
예제 #4
0
    public void DropedToOtherSlot()
    {
        image.sprite = ResourcesManager.Instance.GetUITexture("Null");
        MessageCenter.Send(Meaningless.EMessageType.UnEquipItem, equippedItemType);

        canDrag  = false;
        ItemInfo = null;
    }
예제 #5
0
        static int GetAnimationIndex(ItemIdentifier itemInfo)
        {
            if (AnimationIndexes.TryGetValue(itemInfo, out int index))
            {
                return(index);
            }

            var animationIndex = new SingleItemInfo(itemInfo).AnimationIndex;

            AnimationIndexes.Add(itemInfo, animationIndex);

            return(animationIndex);
        }
예제 #6
0
 public void ThrowAway()
 {
     image.sprite = ResourcesManager.Instance.GetUITexture("Null");
     BagManager.Instance.UnequipItem(equippedItemType);
     if (ItemInfo.itemType != ItemType.Gem)
     {
         CameraBase.Instance.player.GetComponent <PlayerController>().UnEquip(equippedItemType);
     }
     CameraBase.Instance.player.GetComponent <PlayerController>().DiscardItem(ItemInfo.ItemID);
     MessageCenter.Send(Meaningless.EMessageType.RefreshBagList, null);
     canDrag  = false;
     ItemInfo = null;
 }
        void ReceiveItem(NetworkItem networkItem, Level level)
        {
            if (TryGetLocation(networkItem, out var location) && networkItem.Player == slot)
            {
                //ignore message if its from my slot and a location i already picked up
                if (location.IsPickedUp && personalLocationItemKeys.Contains(location.Key))
                {
                    return;
                }
            }
            else
            {
                location = new ExternalItemLocation();

                Add(location);
            }

            if (!TryGetItemIdentifier(networkItem, out var itemIdentifier))
            {
                return;
            }

            // itemInfoProvider's cache is out of date here when it comes to pyramid unlocks
            var item = new SingleItemInfo(UnlockingMap, itemIdentifier);

            location.SetItem(item);

            location.IsPickedUp = true;
            item.OnPickup(level);

            level.GameSave.AddItem(level, itemIdentifier);

            if (itemIdentifier.LootType == LootType.ConstRelic)
            {
                level.AsDynamic().UnlockRelic(itemIdentifier.Relic);
            }

            if (!firstPass || item.IsProgression)
            {
                level.ShowItemAwardPopup(itemIdentifier);
            }

            if (item.IsProgression)
            {
                ItemTrackerUplink.UpdateState(ItemTrackerState.FromItemLocationMap(this));
            }
        }
예제 #8
0
    void Start()
    {
        player = CameraBase.Instance.player;

        NullInfo.weaponProperties     = new WeaponProperties();
        NullInfo.weaponProperties     = null;
        NullInfo.magicProperties      = new MagicProperties();
        NullInfo.magicProperties      = null;
        NullInfo.armorProperties      = new ArmorProperties();
        NullInfo.armorProperties      = null;
        NullInfo.expendableProperties = new ExpendableProperties();
        NullInfo.expendableProperties = null;
        NullInfo.gemProperties        = new GemProperties();
        NullInfo.gemProperties        = null;
        NullInfo.magicProperties      = new MagicProperties();
        NullInfo.magicProperties      = null;
        NullInfo.ItemID   = 0;
        NullInfo.ItemName = null;
        NullInfo.ResName  = "";

        Head         = NullInfo;
        HeadGem1     = NullInfo;
        HeadGem2     = NullInfo;
        Body         = NullInfo;
        BodyGem1     = NullInfo;
        BodyGem2     = NullInfo;
        Weapon1      = NullInfo;
        Weapon1_Gem1 = NullInfo;
        Weapon1_Gem2 = NullInfo;
        Weapon2      = NullInfo;
        Weapon2_Gem1 = NullInfo;
        Weapon2_Gem2 = NullInfo;
        Magic1       = NullInfo;
        Magic2       = NullInfo;


        skillAttributesList[0].skillInfo = new SingleItemInfo();
        skillAttributesList[0].skillInfo.magicProperties = new MagicProperties();
        skillAttributesList[1].skillInfo = new SingleItemInfo();
        skillAttributesList[1].skillInfo.magicProperties = new MagicProperties();
        defaultCharacterStatus = MeaninglessJson.LoadJsonFromFile <CharacterStatus>(MeaninglessJson.Path_StreamingAssets + "CharacterStatus.json");
        characterStatus.HP     = defaultCharacterStatus.HP;
        //MessageCenter.AddListener_Multparam(EMessageType.EquipItem, (object[] obj) => { EquipItem((EquippedItem)obj[0], (SingleItemInfo)obj[1]); });
        MessageCenter.AddListener(EMessageType.UseItem, (object obj) => { UseItem((int)obj); });
    }
예제 #9
0
 public void ThrowAway()
 {
     if (Item.itemType == ItemType.Gem || Item.itemType == ItemType.Expendable)
     {
         BagManager.Instance.List_PickUp.RemoveAt(Index);
     }
     else
     {
         BagManager.Instance.List_Equip.RemoveAt(Index);
     }
     CameraBase.Instance.player.GetComponent <PlayerController>().DiscardItem(Item.ItemID);
     PressedSlider.value = 0;
     txt.text            = "";
     img.sprite          = null;
     Item = null;
     gameObject.SetActive(false);
     Destroy(dragObj);
 }
예제 #10
0
 public void DropedToList()
 {
     if (!bagListFull)
     {
         image.sprite = ResourcesManager.Instance.GetUITexture("Null");
         BagManager.Instance.PickItem(ItemInfo.ItemID);
         BagManager.Instance.UnequipItem(equippedItemType);
         if (ItemInfo.itemType != ItemType.Gem)
         {
             CameraBase.Instance.player.GetComponent <PlayerController>().UnEquip(equippedItemType);
         }
         //MessageCenter.Send(Meaningless.EMessageType.PickedupItem, ItemInfo.ItemID);
         //MessageCenter.Send(Meaningless.EMessageType.UnEquipItem, equippedItemType);
         MessageCenter.Send(Meaningless.EMessageType.RefreshBagList, null);
         canDrag  = false;
         ItemInfo = null;
     }
 }
예제 #11
0
    // Use this for initialization
    void Start()
    {
        ItemsInfo itemsInfo = new ItemsInfo()
        {
            ItemInfoList = new List <SingleItemInfo>()
        };
        SingleItemInfo singleItemInfo = new SingleItemInfo()
        {
            itemType = ItemType.Weapon,
            ItemName = "棍棒",
            ResName  = "Bat",
            OccurrenceProbability = 0.10f,
            weaponProperties      = new WeaponProperties()
            {
                weaponType = WeaponType.Club, CDTime = 0f, Damage = 40
            },
            armorProperties = null
        };

        itemsInfo.ItemInfoList.Add(singleItemInfo);
        singleItemInfo = new SingleItemInfo()
        {
            itemType = ItemType.Armor,
            ItemName = "角斗士头盔",
            ResName  = "Helmet_Gladiator",
            OccurrenceProbability = 0.20f,
            weaponProperties      = null,
            armorProperties       = new ArmorProperties()
            {
                ForWeaponType = WeaponType.Club,
                Rate_Attack   = 1.10f,
                Rate_DecreasedDurationTime = 0f,
                Rate_MagicalDefend         = 0f,
                Rate_MoveSpeed             = 0f,
                Rate_PhysicalDefend        = 0f,
                Rate_Recovery = 0f,
            }
        };
        itemsInfo.ItemInfoList.Add(singleItemInfo);
        MeaninglessJson.SavaJsonAsFile(MeaninglessJson.Path_StreamingAssets + "ItemsInfo.json", MeaninglessJson.ToJson(itemsInfo));
    }
예제 #12
0
    /// <summary>
    /// 脱下物品
    /// </summary>
    /// <param name="equippedItem"></param>
    public void UnequipItem(EquippedItem equippedItem)
    {
        switch (equippedItem)
        {
        case EquippedItem.Head:
            //当头盔脱下,头盔上的宝石将不再生效
            if (HeadGem1 != NullInfo)
            {
                armorAttributes.rate_Attack_Magic       -= HeadGem1.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Attack_Physics     -= HeadGem1.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Defend_Magic       -= HeadGem1.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_Defend_Physics     -= HeadGem1.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_DurationTime_Magic -= HeadGem1.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          -= HeadGem1.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           -= HeadGem1.gemProperties.Rate_Recovery;
            }
            if (HeadGem2 != NullInfo)
            {
                armorAttributes.rate_Attack_Magic       -= HeadGem2.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Attack_Physics     -= HeadGem2.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Defend_Magic       -= HeadGem2.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_Defend_Physics     -= HeadGem2.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_DurationTime_Magic -= HeadGem2.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          -= HeadGem2.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           -= HeadGem2.gemProperties.Rate_Recovery;
            }

            Head = NullInfo;
            break;

        case EquippedItem.HeadGem1:
            if (Head != NullInfo)
            {
                armorAttributes.rate_Attack_Magic       -= HeadGem1.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Attack_Physics     -= HeadGem1.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Defend_Magic       -= HeadGem1.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_Defend_Physics     -= HeadGem1.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_DurationTime_Magic -= HeadGem1.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          -= HeadGem1.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           -= HeadGem1.gemProperties.Rate_Recovery;
            }
            HeadGem1 = NullInfo;
            break;

        case EquippedItem.HeadGem2:
            if (Head != NullInfo)
            {
                armorAttributes.rate_Attack_Magic       -= HeadGem2.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Attack_Physics     -= HeadGem2.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Defend_Magic       -= HeadGem2.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_Defend_Physics     -= HeadGem2.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_DurationTime_Magic -= HeadGem2.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          -= HeadGem2.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           -= HeadGem2.gemProperties.Rate_Recovery;
            }
            HeadGem2 = NullInfo;
            break;

        case EquippedItem.Body:
            //当身体防具脱下,身体防具上的宝石将不再生效
            if (BodyGem1 != NullInfo)
            {
                armorAttributes.rate_Attack_Magic       -= BodyGem1.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Attack_Physics     -= BodyGem1.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Defend_Magic       -= BodyGem1.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_Defend_Physics     -= BodyGem1.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_DurationTime_Magic -= BodyGem1.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          -= BodyGem1.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           -= BodyGem1.gemProperties.Rate_Recovery;
            }
            if (BodyGem2 != NullInfo)
            {
                armorAttributes.rate_Attack_Magic       -= BodyGem2.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Attack_Physics     -= BodyGem2.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Defend_Magic       -= BodyGem2.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_Defend_Physics     -= BodyGem2.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_DurationTime_Magic -= BodyGem2.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          -= BodyGem2.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           -= BodyGem2.gemProperties.Rate_Recovery;
            }

            armorAttributes.rate_Defend_Magic       -= Body.armorProperties.Rate_MagicalDefend;
            armorAttributes.rate_Defend_Physics     -= Body.armorProperties.Rate_PhysicalDefend;
            armorAttributes.rate_DurationTime_Magic -= Body.armorProperties.Rate_DecreasedDurationTime;
            armorAttributes.rate_MoveSpeed          -= Body.armorProperties.Rate_MoveSpeed;
            armorAttributes.rate_Recovery           -= Body.armorProperties.Rate_Recovery;

            Body = NullInfo;
            break;

        case EquippedItem.BodyGem1:
            if (Body != NullInfo)
            {
                armorAttributes.rate_Attack_Magic       -= BodyGem1.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Attack_Physics     -= BodyGem1.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Defend_Magic       -= BodyGem1.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_Defend_Physics     -= BodyGem1.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_DurationTime_Magic -= BodyGem1.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          -= BodyGem1.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           -= BodyGem1.gemProperties.Rate_Recovery;
            }
            BodyGem1 = NullInfo;
            break;

        case EquippedItem.BodyGem2:
            if (Body != NullInfo)
            {
                armorAttributes.rate_Attack_Magic       -= BodyGem2.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Attack_Physics     -= BodyGem2.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Defend_Magic       -= BodyGem2.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_Defend_Physics     -= BodyGem2.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_DurationTime_Magic -= BodyGem2.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          -= BodyGem2.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           -= BodyGem2.gemProperties.Rate_Recovery;
            }
            BodyGem2 = NullInfo;
            break;

        case EquippedItem.Weapon1_Gem1:
            List_WeaponAttributes[0].rate_Attack_Magic       -= Weapon1_Gem1.gemProperties.Rate_MagicalAttack;
            List_WeaponAttributes[0].rate_Attack_Physics     -= Weapon1_Gem1.gemProperties.Rate_PhysicalAttack;
            List_WeaponAttributes[0].rate_Defend_Magic       -= Weapon1_Gem1.gemProperties.Rate_MagicalDefend;
            List_WeaponAttributes[0].rate_Defend_Physics     -= Weapon1_Gem1.gemProperties.Rate_PhysicalDefend;
            List_WeaponAttributes[0].rate_DurationTime_Magic -= Weapon1_Gem1.gemProperties.Rate_DecreasedDurationTime;
            List_WeaponAttributes[0].rate_MoveSpeed          -= Weapon1_Gem1.gemProperties.Rate_MoveSpeed;
            List_WeaponAttributes[0].rate_Recovery           -= Weapon1_Gem1.gemProperties.Rate_Recovery;
            Weapon1_Gem1 = NullInfo;
            break;

        case EquippedItem.Weapon1_Gem2:
            List_WeaponAttributes[0].rate_Attack_Magic       -= Weapon1_Gem2.gemProperties.Rate_MagicalAttack;
            List_WeaponAttributes[0].rate_Attack_Physics     -= Weapon1_Gem2.gemProperties.Rate_PhysicalAttack;
            List_WeaponAttributes[0].rate_Defend_Magic       -= Weapon1_Gem2.gemProperties.Rate_MagicalDefend;
            List_WeaponAttributes[0].rate_Defend_Physics     -= Weapon1_Gem2.gemProperties.Rate_PhysicalDefend;
            List_WeaponAttributes[0].rate_DurationTime_Magic -= Weapon1_Gem2.gemProperties.Rate_DecreasedDurationTime;
            List_WeaponAttributes[0].rate_MoveSpeed          -= Weapon1_Gem2.gemProperties.Rate_MoveSpeed;
            List_WeaponAttributes[0].rate_Recovery           -= Weapon1_Gem2.gemProperties.Rate_Recovery;
            Weapon1_Gem2 = NullInfo;
            break;

        case EquippedItem.Weapon2_Gem1:
            List_WeaponAttributes[1].rate_Attack_Magic       -= Weapon2_Gem1.gemProperties.Rate_MagicalAttack;
            List_WeaponAttributes[1].rate_Attack_Physics     -= Weapon2_Gem1.gemProperties.Rate_PhysicalAttack;
            List_WeaponAttributes[1].rate_Defend_Magic       -= Weapon2_Gem1.gemProperties.Rate_MagicalDefend;
            List_WeaponAttributes[1].rate_Defend_Physics     -= Weapon2_Gem1.gemProperties.Rate_PhysicalDefend;
            List_WeaponAttributes[1].rate_DurationTime_Magic -= Weapon2_Gem1.gemProperties.Rate_DecreasedDurationTime;
            List_WeaponAttributes[1].rate_MoveSpeed          -= Weapon2_Gem1.gemProperties.Rate_MoveSpeed;
            List_WeaponAttributes[1].rate_Recovery           -= Weapon2_Gem1.gemProperties.Rate_Recovery;
            Weapon2_Gem1 = NullInfo;
            break;

        case EquippedItem.Weapon2_Gem2:
            List_WeaponAttributes[1].rate_Attack_Magic       -= Weapon2_Gem2.gemProperties.Rate_MagicalAttack;
            List_WeaponAttributes[1].rate_Attack_Physics     -= Weapon2_Gem2.gemProperties.Rate_PhysicalAttack;
            List_WeaponAttributes[1].rate_Defend_Magic       -= Weapon2_Gem2.gemProperties.Rate_MagicalDefend;
            List_WeaponAttributes[1].rate_Defend_Physics     -= Weapon2_Gem2.gemProperties.Rate_PhysicalDefend;
            List_WeaponAttributes[1].rate_DurationTime_Magic -= Weapon2_Gem2.gemProperties.Rate_DecreasedDurationTime;
            List_WeaponAttributes[1].rate_MoveSpeed          -= Weapon2_Gem2.gemProperties.Rate_MoveSpeed;
            List_WeaponAttributes[1].rate_Recovery           -= Weapon2_Gem2.gemProperties.Rate_Recovery;
            Weapon2_Gem2 = NullInfo;
            break;

        case EquippedItem.Weapon1:
            Weapon1 = NullInfo;
            break;

        case EquippedItem.Weapon2:
            Weapon2 = NullInfo;
            break;

        case EquippedItem.Magic1:
            skillAttributesList[0].skillInfo   = NullInfo;
            skillAttributesList[0].remainCount = 0;
            Magic1 = NullInfo;
            break;

        case EquippedItem.Magic2:
            skillAttributesList[1].skillInfo   = NullInfo;
            skillAttributesList[1].remainCount = 0;
            Magic2 = NullInfo;
            break;
        }
    }
예제 #13
0
    /// <summary>
    /// 装备物品
    /// </summary>
    /// <param name="equippedItem"></param>
    /// <param name="itemInfo"></param>
    public void EquipItem(EquippedItem equippedItem, SingleItemInfo itemInfo)
    {
        switch (equippedItem)
        {
        case EquippedItem.Head:
            //1.使用UnequipItem(EquippedItem.Head)后,直接脱下头盔将会减去头盔上宝石的属性,所以装备头盔时,当宝石存在,即再次加上宝石属性.
            //2.先装备了宝石再装备头盔,宝石属性仍未添加,所以装备头盔时,当宝石存在,即再次加上宝石属性.
            if (HeadGem1 != NullInfo)
            {
                armorAttributes.rate_Attack_Physics     += HeadGem1.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Attack_Magic       += HeadGem1.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Defend_Physics     += HeadGem1.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_Defend_Magic       += HeadGem1.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_DurationTime_Magic += HeadGem1.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          += HeadGem1.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           += HeadGem1.gemProperties.Rate_Recovery;
            }
            if (HeadGem2 != NullInfo)
            {
                armorAttributes.rate_Attack_Physics     += HeadGem2.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Attack_Magic       += HeadGem2.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Defend_Physics     += HeadGem2.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_Defend_Magic       += HeadGem2.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_DurationTime_Magic += HeadGem2.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          += HeadGem2.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           += HeadGem2.gemProperties.Rate_Recovery;
            }
            //添加身体防具属性
            armorAttributes.rate_Defend_Magic       += itemInfo.armorProperties.Rate_MagicalDefend;
            armorAttributes.rate_Defend_Physics     += itemInfo.armorProperties.Rate_PhysicalDefend;
            armorAttributes.rate_DurationTime_Magic += itemInfo.armorProperties.Rate_DecreasedDurationTime;
            armorAttributes.rate_MoveSpeed          += itemInfo.armorProperties.Rate_MoveSpeed;
            armorAttributes.rate_Recovery           += itemInfo.armorProperties.Rate_Recovery;
            Head = itemInfo;
            break;

        case EquippedItem.Body:
            //1.使用UnequipItem(EquippedItem.Body)后,直接脱下身体防具将会减去身体防具上宝石的属性,所以装备身体防具时,当宝石存在,即再次加上宝石属性.
            //2.先装备了宝石再装备身体防具,宝石属性仍未添加,所以装备身体防具时,当宝石存在,即再次加上宝石属性.
            if (BodyGem1 != NullInfo)
            {
                armorAttributes.rate_Attack_Physics     += BodyGem1.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Attack_Magic       += BodyGem1.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Defend_Physics     += BodyGem1.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_Defend_Magic       += BodyGem1.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_DurationTime_Magic += BodyGem1.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          += BodyGem1.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           += BodyGem1.gemProperties.Rate_Recovery;
            }
            if (BodyGem2 != NullInfo)
            {
                armorAttributes.rate_Attack_Physics     += BodyGem2.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Attack_Magic       += BodyGem2.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Defend_Physics     += BodyGem2.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_Defend_Magic       += BodyGem2.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_DurationTime_Magic += BodyGem2.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          += BodyGem2.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           += BodyGem2.gemProperties.Rate_Recovery;
            }

            //添加身体防具属性
            armorAttributes.rate_Defend_Magic       += itemInfo.armorProperties.Rate_MagicalDefend;
            armorAttributes.rate_Defend_Physics     += itemInfo.armorProperties.Rate_PhysicalDefend;
            armorAttributes.rate_DurationTime_Magic += itemInfo.armorProperties.Rate_DecreasedDurationTime;
            armorAttributes.rate_MoveSpeed          += itemInfo.armorProperties.Rate_MoveSpeed;
            armorAttributes.rate_Recovery           += itemInfo.armorProperties.Rate_Recovery;

            Body = itemInfo;
            break;

        case EquippedItem.HeadGem1:
            HeadGem1 = itemInfo;
            if (Head != NullInfo)
            {
                armorAttributes.rate_Attack_Physics     += itemInfo.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Attack_Magic       += itemInfo.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Defend_Physics     += itemInfo.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_Defend_Magic       += itemInfo.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_DurationTime_Magic += itemInfo.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          += itemInfo.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           += itemInfo.gemProperties.Rate_Recovery;
            }
            break;

        case EquippedItem.HeadGem2:
            HeadGem2 = itemInfo;
            if (Head != NullInfo)
            {
                armorAttributes.rate_Attack_Physics     += itemInfo.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Attack_Magic       += itemInfo.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Defend_Physics     += itemInfo.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_Defend_Magic       += itemInfo.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_DurationTime_Magic += itemInfo.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          += itemInfo.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           += itemInfo.gemProperties.Rate_Recovery;
            }
            HeadGem2 = itemInfo;
            break;

        case EquippedItem.BodyGem1:
            BodyGem1 = itemInfo;
            if (Body != NullInfo)
            {
                armorAttributes.rate_Attack_Physics     += itemInfo.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Attack_Magic       += itemInfo.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Defend_Physics     += itemInfo.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_Defend_Magic       += itemInfo.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_DurationTime_Magic += itemInfo.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          += itemInfo.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           += itemInfo.gemProperties.Rate_Recovery;
            }
            break;

        case EquippedItem.BodyGem2:
            BodyGem2 = itemInfo;
            if (Body != NullInfo)
            {
                armorAttributes.rate_Attack_Physics     += itemInfo.gemProperties.Rate_PhysicalAttack;
                armorAttributes.rate_Attack_Magic       += itemInfo.gemProperties.Rate_MagicalAttack;
                armorAttributes.rate_Defend_Physics     += itemInfo.gemProperties.Rate_PhysicalDefend;
                armorAttributes.rate_Defend_Magic       += itemInfo.gemProperties.Rate_MagicalDefend;
                armorAttributes.rate_DurationTime_Magic += itemInfo.gemProperties.Rate_DecreasedDurationTime;
                armorAttributes.rate_MoveSpeed          += itemInfo.gemProperties.Rate_MoveSpeed;
                armorAttributes.rate_Recovery           += itemInfo.gemProperties.Rate_Recovery;
            }
            break;


        case EquippedItem.Weapon1:
            //1.使用UnequipItem(EquippedItem.Weapon1)后,直接脱下武器将会减去武器上宝石的属性,所以装备武器时,当宝石存在,即再次加上宝石属性.
            //2.先装备了宝石再装备Weapon1,宝石属性仍未添加,所以装备武器时,当宝石存在,即再次加上宝石属性.
            if (Weapon1_Gem1 != NullInfo)
            {
                List_WeaponAttributes[0].rate_Attack_Magic       += Weapon1_Gem1.gemProperties.Rate_MagicalAttack;
                List_WeaponAttributes[0].rate_Attack_Physics     += Weapon1_Gem1.gemProperties.Rate_PhysicalAttack;
                List_WeaponAttributes[0].rate_Defend_Magic       += Weapon1_Gem1.gemProperties.Rate_MagicalDefend;
                List_WeaponAttributes[0].rate_Defend_Physics     += Weapon1_Gem1.gemProperties.Rate_PhysicalDefend;
                List_WeaponAttributes[0].rate_DurationTime_Magic += Weapon1_Gem1.gemProperties.Rate_DecreasedDurationTime;
                List_WeaponAttributes[0].rate_MoveSpeed          += Weapon1_Gem1.gemProperties.Rate_MoveSpeed;
                List_WeaponAttributes[0].rate_Recovery           += Weapon1_Gem1.gemProperties.Rate_Recovery;
            }
            if (Weapon1_Gem2 != NullInfo)
            {
                List_WeaponAttributes[0].rate_Attack_Magic       += Weapon1_Gem2.gemProperties.Rate_MagicalAttack;
                List_WeaponAttributes[0].rate_Attack_Physics     += Weapon1_Gem2.gemProperties.Rate_PhysicalAttack;
                List_WeaponAttributes[0].rate_Defend_Magic       += Weapon1_Gem2.gemProperties.Rate_MagicalDefend;
                List_WeaponAttributes[0].rate_Defend_Physics     += Weapon1_Gem2.gemProperties.Rate_PhysicalDefend;
                List_WeaponAttributes[0].rate_DurationTime_Magic += Weapon1_Gem2.gemProperties.Rate_DecreasedDurationTime;
                List_WeaponAttributes[0].rate_MoveSpeed          += Weapon1_Gem2.gemProperties.Rate_MoveSpeed;
                List_WeaponAttributes[0].rate_Recovery           += Weapon1_Gem2.gemProperties.Rate_Recovery;
            }


            Weapon1 = itemInfo;

            break;

        case EquippedItem.Weapon2:
            //1.使用UnequipItem(EquippedItem.Weapon2)后,直接脱下武器将会减去武器上宝石的属性,所以装备武器时,当宝石存在,即再次加上宝石属性.
            //2.先装备了宝石再装备Weapon2,宝石属性仍未添加,所以装备武器时,当宝石存在,即再次加上宝石属性.
            if (Weapon2_Gem1 != NullInfo)
            {
                List_WeaponAttributes[1].rate_Attack_Magic       += Weapon2_Gem1.gemProperties.Rate_MagicalAttack;
                List_WeaponAttributes[1].rate_Attack_Physics     += Weapon2_Gem1.gemProperties.Rate_PhysicalAttack;
                List_WeaponAttributes[1].rate_Defend_Magic       += Weapon2_Gem1.gemProperties.Rate_MagicalDefend;
                List_WeaponAttributes[1].rate_Defend_Physics     += Weapon2_Gem1.gemProperties.Rate_PhysicalDefend;
                List_WeaponAttributes[1].rate_DurationTime_Magic += Weapon2_Gem1.gemProperties.Rate_DecreasedDurationTime;
                List_WeaponAttributes[1].rate_MoveSpeed          += Weapon2_Gem1.gemProperties.Rate_MoveSpeed;
                List_WeaponAttributes[1].rate_Recovery           += Weapon2_Gem1.gemProperties.Rate_Recovery;
            }
            if (Weapon2_Gem2 != NullInfo)
            {
                List_WeaponAttributes[1].rate_Attack_Magic       += Weapon2_Gem2.gemProperties.Rate_MagicalAttack;
                List_WeaponAttributes[1].rate_Attack_Physics     += Weapon2_Gem2.gemProperties.Rate_PhysicalAttack;
                List_WeaponAttributes[1].rate_Defend_Magic       += Weapon2_Gem2.gemProperties.Rate_MagicalDefend;
                List_WeaponAttributes[1].rate_Defend_Physics     += Weapon2_Gem2.gemProperties.Rate_PhysicalDefend;
                List_WeaponAttributes[1].rate_DurationTime_Magic += Weapon2_Gem2.gemProperties.Rate_DecreasedDurationTime;
                List_WeaponAttributes[1].rate_MoveSpeed          += Weapon2_Gem2.gemProperties.Rate_MoveSpeed;
                List_WeaponAttributes[1].rate_Recovery           += Weapon2_Gem2.gemProperties.Rate_Recovery;
            }

            Weapon2 = itemInfo;
            break;

        case EquippedItem.Weapon1_Gem1:
            Weapon1_Gem1 = itemInfo;
            if (Weapon1 != NullInfo)
            {
                List_WeaponAttributes[0].rate_Attack_Magic       += itemInfo.gemProperties.Rate_MagicalAttack;
                List_WeaponAttributes[0].rate_Attack_Physics     += itemInfo.gemProperties.Rate_PhysicalAttack;
                List_WeaponAttributes[0].rate_Defend_Magic       += itemInfo.gemProperties.Rate_MagicalDefend;
                List_WeaponAttributes[0].rate_Defend_Physics     += itemInfo.gemProperties.Rate_PhysicalDefend;
                List_WeaponAttributes[0].rate_DurationTime_Magic += itemInfo.gemProperties.Rate_DecreasedDurationTime;
                List_WeaponAttributes[0].rate_MoveSpeed          += itemInfo.gemProperties.Rate_MoveSpeed;
                List_WeaponAttributes[0].rate_Recovery           += itemInfo.gemProperties.Rate_Recovery;
            }
            Magic1 = itemInfo;
            break;

        case EquippedItem.Weapon1_Gem2:
            Weapon1_Gem2 = itemInfo;
            if (Weapon1 != NullInfo)
            {
                List_WeaponAttributes[0].rate_Attack_Magic       += itemInfo.gemProperties.Rate_MagicalAttack;
                List_WeaponAttributes[0].rate_Attack_Physics     += itemInfo.gemProperties.Rate_PhysicalAttack;
                List_WeaponAttributes[0].rate_Defend_Magic       += itemInfo.gemProperties.Rate_MagicalDefend;
                List_WeaponAttributes[0].rate_Defend_Physics     += itemInfo.gemProperties.Rate_PhysicalDefend;
                List_WeaponAttributes[0].rate_DurationTime_Magic += itemInfo.gemProperties.Rate_DecreasedDurationTime;
                List_WeaponAttributes[0].rate_MoveSpeed          += itemInfo.gemProperties.Rate_MoveSpeed;
                List_WeaponAttributes[0].rate_Recovery           += itemInfo.gemProperties.Rate_Recovery;
            }
            break;

        case EquippedItem.Weapon2_Gem1:
            Weapon2_Gem1 = itemInfo;
            if (Weapon2 != NullInfo)
            {
                List_WeaponAttributes[1].rate_Attack_Magic       += itemInfo.gemProperties.Rate_MagicalAttack;
                List_WeaponAttributes[1].rate_Attack_Physics     += itemInfo.gemProperties.Rate_PhysicalAttack;
                List_WeaponAttributes[1].rate_Defend_Magic       += itemInfo.gemProperties.Rate_MagicalDefend;
                List_WeaponAttributes[1].rate_Defend_Physics     += itemInfo.gemProperties.Rate_PhysicalDefend;
                List_WeaponAttributes[1].rate_DurationTime_Magic += itemInfo.gemProperties.Rate_DecreasedDurationTime;
                List_WeaponAttributes[1].rate_MoveSpeed          += itemInfo.gemProperties.Rate_MoveSpeed;
                List_WeaponAttributes[1].rate_Recovery           += itemInfo.gemProperties.Rate_Recovery;
            }
            break;

        case EquippedItem.Weapon2_Gem2:
            Weapon2_Gem2 = itemInfo;
            if (Weapon2 != NullInfo)
            {
                List_WeaponAttributes[1].rate_Attack_Magic       += itemInfo.gemProperties.Rate_MagicalAttack;
                List_WeaponAttributes[1].rate_Attack_Physics     += itemInfo.gemProperties.Rate_PhysicalAttack;
                List_WeaponAttributes[1].rate_Defend_Magic       += itemInfo.gemProperties.Rate_MagicalDefend;
                List_WeaponAttributes[1].rate_Defend_Physics     += itemInfo.gemProperties.Rate_PhysicalDefend;
                List_WeaponAttributes[1].rate_DurationTime_Magic += itemInfo.gemProperties.Rate_DecreasedDurationTime;
                List_WeaponAttributes[1].rate_MoveSpeed          += itemInfo.gemProperties.Rate_MoveSpeed;
                List_WeaponAttributes[1].rate_Recovery           += itemInfo.gemProperties.Rate_Recovery;
            }
            break;

        case EquippedItem.Magic1:
            Magic1 = itemInfo;
            skillAttributesList[0].skillInfo   = itemInfo;
            skillAttributesList[0].isOn        = true;
            skillAttributesList[0].isUse       = false;
            skillAttributesList[0].Timer       = itemInfo.magicProperties.CDTime;
            skillAttributesList[0].remainCount = (int)itemInfo.magicProperties.UsableCount;
            break;

        case EquippedItem.Magic2:
            Magic2 = itemInfo;
            skillAttributesList[1].skillInfo   = itemInfo;
            skillAttributesList[1].isOn        = true;
            skillAttributesList[1].isUse       = false;
            skillAttributesList[1].Timer       = itemInfo.magicProperties.CDTime;
            skillAttributesList[1].remainCount = (int)itemInfo.magicProperties.UsableCount;
            break;

        default:
            break;
        }
    }
예제 #14
0
    public void OnDrop(PointerEventData eventData)
    {
        if (canDrag == false)
        {
            if (eventData.pointerDrag != null)
            {
                BagListitem bagListitem = eventData.pointerDrag.GetComponent <BagListitem>();
                DropItem    dropItem    = eventData.pointerDrag.GetComponent <DropItem>();

                switch (equippedItemType)
                {
                case EquippedItem.BodyGem1:
                case EquippedItem.BodyGem2:
                case EquippedItem.HeadGem1:
                case EquippedItem.HeadGem2:
                case EquippedItem.Weapon1_Gem1:
                case EquippedItem.Weapon1_Gem2:
                case EquippedItem.Weapon2_Gem1:
                case EquippedItem.Weapon2_Gem2:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Gem)
                        {
                            image.sprite = bagListitem.img.sprite;
                            object[] param = new object[2];

                            param[0] = equippedItemType;
                            param[1] = bagListitem.Item;
                            MessageCenter.Send_Multparam(Meaningless.EMessageType.EquipItem, param);

                            ItemInfo = bagListitem.Item;

                            bagListitem.UseItem();

                            canDrag = true;
                        }
                    }
                    if (dropItem != null)
                    {
                        if (dropItem.ItemInfo.itemType == ItemType.Gem)
                        {
                            image.sprite = dropItem.image.sprite;
                            MessageCenter.Send(Meaningless.EMessageType.UnEquipItem, dropItem.equippedItemType);

                            object[] param = new object[2];
                            param[0] = equippedItemType;
                            param[1] = dropItem.ItemInfo;
                            MessageCenter.Send_Multparam(Meaningless.EMessageType.EquipItem, param);

                            ItemInfo = dropItem.ItemInfo;
                            canDrag  = true;
                            dropItem.DropedToOtherSlot();
                        }
                    }
                    break;

                case EquippedItem.Head:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Armor)
                        {
                            if (bagListitem.Item.armorProperties.armorType == ArmorType.Head)
                            {
                                image.sprite = bagListitem.img.sprite;

                                BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);
                                ItemInfo = bagListitem.Item;

                                bagListitem.Equip();
                                CameraBase.Instance.player.GetComponent <PlayerController>().EquipHelmet(bagListitem.Item.ItemID);
                                NetworkManager.SendPlayerEquipHelmet(bagListitem.Item.ItemID);     //发送戴头盔消息
                                canDrag = true;
                            }
                        }
                    }
                    break;

                case EquippedItem.Body:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Armor)
                        {
                            if (bagListitem.Item.armorProperties.armorType == ArmorType.Body)
                            {
                                image.sprite = bagListitem.img.sprite;

                                BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);
                                ItemInfo = bagListitem.Item;

                                bagListitem.Equip();
                                CameraBase.Instance.player.GetComponent <PlayerController>().EquipClothes(bagListitem.Item.ItemID);
                                NetworkManager.SendPlayerEquipClothe(bagListitem.Item.ItemID);     //发送着衫消息

                                canDrag = true;
                            }
                        }
                    }

                    break;

                case EquippedItem.Weapon1:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Weapon)
                        {
                            if (bagListitem.Item.weaponProperties.weaponType != WeaponType.Shield)
                            {
                                image.sprite = bagListitem.img.sprite;
                                // MessageCenter.Send_Multparam(Meaningless.EMessageType.EquipItem, param);
                                BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);
                                BagManager.Instance.CurrentSelected = 1;
                                CameraBase.Instance.player.GetComponent <PlayerController>().ChangeWeapon(1);
                                NetworkManager.SendPlayerEquipWeapon(bagListitem.Item.ItemID);     //发送换武器消息

                                ItemInfo = bagListitem.Item;

                                bagListitem.Equip();

                                canDrag = true;
                            }
                        }
                    }
                    break;

                case EquippedItem.Weapon2:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Weapon)
                        {
                            if (bagListitem.Item.weaponProperties.weaponType != WeaponType.Shield)
                            {
                                image.sprite = bagListitem.img.sprite;

                                BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);
                                BagManager.Instance.CurrentSelected = 2;
                                CameraBase.Instance.player.GetComponent <PlayerController>().ChangeWeapon(2);
                                NetworkManager.SendPlayerEquipWeapon(bagListitem.Item.ItemID);     //发送换武器消息
                                ItemInfo = bagListitem.Item;

                                bagListitem.Equip();

                                canDrag = true;
                            }
                        }
                    }
                    break;

                case EquippedItem.Magic1:
                case EquippedItem.Magic2:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Magic)
                        {
                            image.sprite = bagListitem.img.sprite;

                            BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);

                            ItemInfo = bagListitem.Item;

                            bagListitem.Equip();

                            canDrag = true;
                        }
                    }

                    break;
                }
            }
        }
    }