示例#1
0
    void ParseItemJson()
    {
        itemList = new List <Item>();
        TextAsset  itemText = Resources.Load <TextAsset>("ItemJson");
        string     itemStr  = itemText.text;
        JSONObject j        = new JSONObject(itemStr);

        foreach (JSONObject temp in j.list)
        {
            int               id          = (int)temp["Id"].n;
            string            name        = temp["Name"].str;
            Item.ItemQuality  quality     = (Item.ItemQuality)System.Enum.Parse(typeof(Item.ItemQuality), temp["Quality"].str);
            string            description = temp["Description"].str;
            int               capacity    = (int)temp["Capacity"].n;
            int               buyPrice    = (int)temp["BuyPrice"].n;
            int               salePrice   = (int)temp["SalePrice"].n;
            string            sprite      = temp["Sprite"].str;
            string            typeStr     = temp["ItemType"].str;
            Item.ItemTypeEnum itemType    = (Item.ItemTypeEnum)System.Enum.Parse(typeof(Item.ItemTypeEnum), typeStr);
            Item              item        = null;
            switch (itemType)
            {
            case Item.ItemTypeEnum.Consumable:
                int hp = int.Parse(temp["Hp"].ToString());
                int mp = int.Parse(temp["Mp"].ToString());
                item = new Consumable(hp, mp, id, name, itemType, quality, description, capacity, buyPrice, salePrice, sprite);
                break;

            case Item.ItemTypeEnum.Equipment:
                int strength     = int.Parse(temp["Strength"].ToString());
                int Intelligence = int.Parse(temp["Intelligence"].ToString());
                int agility      = int.Parse(temp["Agility"].ToString());
                int stamina      = int.Parse(temp["Stamina"].ToString());
                Equipment.EquipType equipmentType = (Equipment.EquipType)System.Enum.Parse(typeof(Equipment.EquipType), temp["EquipmentType"].str);
                item = new Equipment(strength, Intelligence, agility, stamina, equipmentType, id, name, itemType, quality, description, capacity, buyPrice, salePrice, sprite);
                break;

            case Item.ItemTypeEnum.Weapon:
                int damage = int.Parse(temp["Damage"].ToString());
                Weapon.WeaponEnum weaponType = (Weapon.WeaponEnum)System.Enum.Parse(typeof(Weapon.WeaponEnum), temp["WeaponType"].str);
                item = new Weapon(damage, weaponType, id, name, itemType, quality, description, capacity, buyPrice, salePrice, sprite);
                break;

            case Item.ItemTypeEnum.Material:
                break;

            default:
                break;
            }
            itemList.Add(item);
        }
    }
示例#2
0
        public void WeaponChanged(Weapon.WeaponEnum weaponEnum)
        {
            switch (weaponEnum)
            {
            case Weapon.WeaponEnum.Fists:
                GetComponent <Animator>().runtimeAnimatorController = _ogAnimator;
                InitializeAnimatorOverrideController();

                _thirdPersonCharacter.ChangeAnimator();
                _thirdPersonUserControl.ChangeAnimator();
                break;

            case Weapon.WeaponEnum.Gloves:
                GetComponent <Animator>().runtimeAnimatorController = _ogAnimator;
                InitializeAnimatorOverrideController();

                _thirdPersonCharacter.ChangeAnimator();
                _thirdPersonUserControl.ChangeAnimator();
                break;

            case Weapon.WeaponEnum.Knife:
                GetComponent <Animator>().runtimeAnimatorController = _ogAnimator;

                InitializeAnimatorOverrideController();

                _thirdPersonCharacter.ChangeAnimator();
                _thirdPersonUserControl.ChangeAnimator();
                _clipOverrides["Uppercut"] = Clips.KnifeAttackAnimationClip;
                _clipOverrides["idleLoco"] = Clips.KnifeIdleAnimationClip;
                break;

            case Weapon.WeaponEnum.WarHammer:
                GetComponent <Animator>().runtimeAnimatorController = _animatorAxe;
                InitializeAnimatorOverrideController();
                _thirdPersonCharacter.ChangeAnimator();
                _thirdPersonUserControl.ChangeAnimator();
                break;

            case Weapon.WeaponEnum.Gun:
                GetComponent <Animator>().runtimeAnimatorController = _animatorGun;
                InitializeAnimatorOverrideController();
                _thirdPersonCharacter.ChangeAnimator();
                _thirdPersonUserControl.ChangeAnimator();

                break;

            default:
                throw new ArgumentOutOfRangeException("weaponEnum", weaponEnum, null);
            }
            _animatorOverrideController.ApplyOverrides(_clipOverrides);
        }