Exemplo n.º 1
0
        public static ReplaceEquipmentInfo GetReplaceEquipmentInfo(this EquipmentCollectData equipmentCollectData)
        {
            if (equipmentCollectData != null)
            {
                EquipmentConfigId equipmentConfigId = equipmentCollectData.EquipmentConfigId;
                return(new ReplaceEquipmentInfo(equipmentConfigId.VisualId, equipmentConfigId.Rarity));
            }

            return(new ReplaceEquipmentInfo());
        }
        public ChangeWeaponMaterialLogic(VfxAction.ChangeWeaponMaterialVfx config, float timeToLive, Character caster, Environment environment)
        {
            this.config      = config;
            this.timeToLive  = timeToLive;
            this.caster      = caster;
            this.environment = environment;
            Entity entity = caster.GameObject().GetComponent <EntityReference>().Entity;
            CustomizeVisualComponent cvc = entity.GetComponent <CustomizeVisualComponent>();
            EquipmentCollectData     equipmentCollectData = cvc.EquipmentCollectData;

            if (equipmentCollectData == null)
            {
                material = environment.FindDefaultMaterialById(
                    caster.CharacterId(), config.id
                    );
            }
            else
            {
                material = environment.FindMaterialById(
                    caster.CharacterId(), equipmentCollectData.EquipmentConfigId.VisualId, config.id
                    );
            }

            if (material == null)
            {
                Interrupt();
                return;
            }

            EntityGameObjectComponent egoc = entity
                                             .GetComponent <EntityGameObjectComponent>();

            affectedRenderer = ((GameObjectComponent)egoc).WeaponRenderer;
            if (material != null)
            {
                originalMaterials         = new SsarTuple <Material, Material[]>(affectedRenderer.material, affectedRenderer.materials);
                affectedRenderer.material = material;
                List <Material> materials = new List <Material>();
                materials.Add(material);

                for (int kIndex = 0; kIndex < config.valueModifiers.Count; kIndex++)
                {
                    VfxAction.MaterialValueModifier mvm = config.valueModifiers[kIndex];
                    valueModifiers.Add(new ValueModifier(mvm, materials));
                }

                for (int kIndex = 0; kIndex < config.colorModifiers.Count; kIndex++)
                {
                    VfxAction.MaterialColorModifier mcm = config.colorModifiers[kIndex];
                    colorModifiers.Add(new ColorModifier(mcm, materials));
                }
            }
        }
Exemplo n.º 3
0
        public static ReplaceEquipmentInfo GetReplaceEquipmentInfo(this MainCharacterData mainCharacterData,
                                                                   EquipmentType equipmentType)
        {
            EquipmentCollectData equipmentCollectData = mainCharacterData.InventoryData.GetEquipment(mainCharacterData
                                                                                                     .PresetData(Preset.Pve).GetEquippedEquipmentCollectId(equipmentType).ToEquipmentCollectId());

            if (equipmentCollectData != null)
            {
                EquipmentConfigId equipmentConfigId = equipmentCollectData.EquipmentConfigId;
                return(new ReplaceEquipmentInfo(equipmentConfigId.VisualId, equipmentConfigId.Rarity));
            }

            return(new ReplaceEquipmentInfo());
        }