示例#1
0
        private static Sosig SpawnSosigAndConfigureSosig(GameObject prefab, Vector3 pos, Quaternion rot, SosigConfigTemplate t,
                                                         SosigOutfitConfig w)
        {
            var componentInChildren = Object.Instantiate(prefab, pos, rot).GetComponentInChildren <Sosig>();

            if (Random.Range(0.0f, 1f) < w.Chance_Headwear)
            {
                SpawnAccessoryToLink(w.Headwear, componentInChildren.Links[0]);
            }
            if (Random.Range(0.0f, 1f) < w.Chance_Facewear)
            {
                SpawnAccessoryToLink(w.Facewear, componentInChildren.Links[0]);
            }
            if (Random.Range(0.0f, 1f) < w.Chance_Eyewear)
            {
                SpawnAccessoryToLink(w.Eyewear, componentInChildren.Links[0]);
            }
            if (Random.Range(0.0f, 1f) < w.Chance_Torsowear)
            {
                SpawnAccessoryToLink(w.Torsowear, componentInChildren.Links[1]);
            }
            if (Random.Range(0.0f, 1f) < w.Chance_Pantswear)
            {
                SpawnAccessoryToLink(w.Pantswear, componentInChildren.Links[2]);
            }
            if (Random.Range(0.0f, 1f) < w.Chance_Pantswear_Lower)
            {
                SpawnAccessoryToLink(w.Pantswear_Lower, componentInChildren.Links[3]);
            }
            if (Random.Range(0.0f, 1f) < w.Chance_Backpacks)
            {
                SpawnAccessoryToLink(w.Backpacks, componentInChildren.Links[1]);
            }
            if (t.UsesLinkSpawns)
            {
                for (var index = 0; index < componentInChildren.Links.Count; ++index)
                {
                    if (Random.Range(0.0f, 1f) < t.LinkSpawnChance[index])
                    {
                        componentInChildren.Links[index].RegisterSpawnOnDestroy(t.LinkSpawns[index]);
                    }
                }
            }

            componentInChildren.Configure(t);
            return(componentInChildren);
        }
示例#2
0
        public SosigOutfitConfig GetOutfitConfig()
        {
            if (template == null)
            {
                template = (SosigOutfitConfig)ScriptableObject.CreateInstance(typeof(SosigOutfitConfig));

                template.Chance_Headwear        = Chance_Headwear;
                template.Chance_Eyewear         = Chance_Eyewear;
                template.Chance_Facewear        = Chance_Facewear;
                template.Chance_Torsowear       = Chance_Torsowear;
                template.Chance_Pantswear       = Chance_Pantswear;
                template.Chance_Pantswear_Lower = Chance_Pantswear_Lower;
                template.Chance_Backpacks       = Chance_Backpacks;
            }

            return(template);
        }
示例#3
0
        public OutfitConfig(SosigOutfitConfig template)
        {
            Headwear               = template.Headwear.Select(o => o.ItemID).ToList();
            Eyewear                = template.Eyewear.Select(o => o.ItemID).ToList();
            Facewear               = template.Facewear.Select(o => o.ItemID).ToList();
            Torsowear              = template.Torsowear.Select(o => o.ItemID).ToList();
            Pantswear              = template.Pantswear.Select(o => o.ItemID).ToList();
            Pantswear_Lower        = template.Pantswear_Lower.Select(o => o.ItemID).ToList();
            Backpacks              = template.Backpacks.Select(o => o.ItemID).ToList();
            Chance_Headwear        = template.Chance_Headwear;
            Chance_Eyewear         = template.Chance_Eyewear;
            Chance_Facewear        = template.Chance_Facewear;
            Chance_Torsowear       = template.Chance_Torsowear;
            Chance_Pantswear       = template.Chance_Pantswear;
            Chance_Pantswear_Lower = template.Chance_Pantswear_Lower;
            Chance_Backpacks       = template.Chance_Backpacks;

            this.template = template;
        }