public EquipmentArmor createEquipmentArmorObject(ArmorEnum _ArmorEnum)
        {
            EquipmentArmor equipmentArmorObject = new EquipmentArmor();

            equipmentArmorObject.Scale     = 1;
            equipmentArmorObject.Velocity  = new Vector3(0, 0, 0);
            equipmentArmorObject.StackMax  = 1;
            equipmentArmorObject.Size      = new Microsoft.Xna.Framework.Vector3(32, 32, 0);
            equipmentArmorObject.ArmorEnum = _ArmorEnum;
            equipmentArmorObject.ItemEnum  = ItemEnum.Armor;

            switch (_ArmorEnum)
            {
            case ArmorEnum.Chest:
            {
                equipmentArmorObject.NormalArmor               = 1;
                equipmentArmorObject.ItemIconGraphicPath       = "Object/Item/Small/Cloth1";
                equipmentArmorObject.Body.MainBody.TexturePath = "Character/Cloth1";
                break;
            }

            case ArmorEnum.GoldenArmor:
                equipmentArmorObject.NormalArmor               = 10;
                equipmentArmorObject.ItemIconGraphicPath       = "Object/Item/Small/Cloth1";
                equipmentArmorObject.Body.MainBody.TexturePath = "Character/GoldenArmor";
                break;
            }

            return(equipmentArmorObject);
        }
示例#2
0
    public void Equip(Equipment newEquipment)
    {
        int       equipmentSlot = (int)newEquipment.EquipmentTypeToSlot();
        Equipment oldEquipment  = currentEquipment[equipmentSlot];

        if (oldEquipment != null && currentMeshes[equipmentSlot] != null)
        {
            Destroy(currentMeshes[equipmentSlot].gameObject);
        }
        currentEquipment[equipmentSlot] = newEquipment;
        if (newEquipment.mesh != null)
        {
            if (equipmentSlot < defaultOutfitsInstances.Length && defaultOutfitsInstances[equipmentSlot] != null)
            {
                Destroy(defaultOutfitsInstances[equipmentSlot].gameObject);
            }
            SkinnedMeshRenderer newMesh = Instantiate(newEquipment.mesh);
            newMesh.transform.parent = targetMesh.transform;

            newMesh.bones    = targetMesh.bones;
            newMesh.rootBone = targetMesh.rootBone;

            if ((int)newEquipment.equipmentType <= 2)
            {
                foreach (EquipmentMeshRegions equipmentBlendShapes in newEquipment.equipmentMeshRegions)
                {
                    targetMesh.SetBlendShapeWeight((int)equipmentBlendShapes, 100);
                }

                EquipmentArmor newEquipmentArmor = (EquipmentArmor)newEquipment;
                int            matLength         = newMesh.materials.Length;
                Material[]     newMaterials      = new Material[matLength];
                for (int i = 0; i < matLength; i++)
                {
                    newMaterials[i] = materials[(int)newEquipmentArmor.armorType];
                }
                newMesh.materials = newMaterials;
            }
            currentMeshes[equipmentSlot] = newMesh;
        }


        inventory.Remove(newEquipment);
        inventory.Add(oldEquipment);

        if (onEquipmentChangedCallBack != null)
        {
            onEquipmentChangedCallBack.Invoke(newEquipment, oldEquipment);
        }
    }
示例#3
0
    public void setItem(string itemID)
    {
        itemToDisplay = FindObjectOfType <EquipmentDictionary>().armorDictionary[itemID];

        updatePanel();
    }