Exemplo n.º 1
0
        public SosigConfigTemplate GetConfigTemplate()
        {
            if (template == null)
            {
                template = (SosigConfigTemplate)ScriptableObject.CreateInstance(typeof(SosigConfigTemplate));

                template.ViewDistance               = ViewDistance;
                template.HearingDistance            = HearingDistance;
                template.MaxFOV                     = MaxFOV;
                template.SearchExtentsModifier      = SearchExtentsModifier;
                template.DoesAggroOnFriendlyFire    = DoesAggroOnFriendlyFire;
                template.HasABrain                  = HasABrain;
                template.DoesDropWeaponsOnBallistic = DoesDropWeaponsOnBallistic;
                template.CanPickup_Ranged           = CanPickupRanged;
                template.CanPickup_Melee            = CanPickupMelee;
                template.CanPickup_Other            = CanPickupOther;
                template.TargetCapacity             = TargetCapacity;
                template.TargetTrackingTime         = TargetTrackingTime;
                template.NoFreshTargetTime          = NoFreshTargetTime;
                template.AssaultPointOverridesSkirmishPointWhenFurtherThan = AssaultPointOverridesSkirmishPointWhenFurtherThan;
                template.RunSpeed               = RunSpeed;
                template.WalkSpeed              = WalkSpeed;
                template.SneakSpeed             = SneakSpeed;
                template.CrawlSpeed             = CrawlSpeed;
                template.TurnSpeed              = TurnSpeed;
                template.MaxJointLimit          = MaxJointLimit;
                template.MovementRotMagnitude   = MovementRotMagnitude;
                template.TotalMustard           = TotalMustard;
                template.BleedDamageMult        = BleedDamageMult;
                template.BleedRateMultiplier    = BleedRateMultiplier;
                template.BleedVFXIntensity      = BleedVFXIntensity;
                template.DamMult_Projectile     = DamMult_Projectile;
                template.DamMult_Explosive      = DamMult_Explosive;
                template.DamMult_Melee          = DamMult_Melee;
                template.DamMult_Piercing       = DamMult_Piercing;
                template.DamMult_Blunt          = DamMult_Blunt;
                template.DamMult_Cutting        = DamMult_Cutting;
                template.DamMult_Thermal        = DamMult_Thermal;
                template.DamMult_Chilling       = DamMult_Chilling;
                template.DamMult_EMP            = DamMult_EMP;
                template.LinkDamageMultipliers  = LinkDamageMultipliers;
                template.LinkStaggerMultipliers = LinkStaggerMultipliers;

                template.StartingLinkIntegrity = new List <Vector2>();
                foreach (Vector2Serializable v in StartingLinkIntegrity)
                {
                    template.StartingLinkIntegrity.Add(v.GetVector2());
                }

                template.StartingChanceBrokenJoint = StartingChanceBrokenJoint;
                template.ShudderThreshold          = ShudderThreshold;
                template.ConfusionThreshold        = ConfusionThreshold;
                template.ConfusionMultiplier       = ConfusionMultiplier;
                template.ConfusionTimeMax          = ConfusionTimeMax;
                template.StunThreshold             = StunThreshold;
                template.StunMultiplier            = StunMultiplier;
                template.StunTimeMax              = StunTimeMax;
                template.CanBeGrabbed             = CanBeGrabbed;
                template.CanBeSevered             = CanBeSevered;
                template.CanBeStabbed             = CanBeStabbed;
                template.CanBeSurpressed          = CanBeSurpressed;
                template.SuppressionMult          = SuppressionMult;
                template.DoesJointBreakKill_Head  = DoesJointBreakKill_Head;
                template.DoesJointBreakKill_Upper = DoesJointBreakKill_Upper;
                template.DoesJointBreakKill_Lower = DoesJointBreakKill_Lower;
                template.DoesSeverKill_Head       = DoesSeverKill_Head;
                template.DoesSeverKill_Upper      = DoesSeverKill_Upper;
                template.DoesSeverKill_Lower      = DoesSeverKill_Lower;
                template.DoesExplodeKill_Head     = DoesExplodeKill_Head;
                template.DoesExplodeKill_Upper    = DoesExplodeKill_Upper;
                template.DoesExplodeKill_Lower    = DoesExplodeKill_Lower;
                template.UsesLinkSpawns           = false;
                template.LinkSpawns      = new List <FVRObject>();
                template.LinkSpawnChance = new List <float>();
                template.OverrideSpeech  = false;
            }

            return(template);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        public SosigConfig(SosigConfigTemplate template)
        {
            ViewDistance               = template.ViewDistance;
            HearingDistance            = template.HearingDistance;
            MaxFOV                     = template.MaxFOV;
            SearchExtentsModifier      = template.SearchExtentsModifier;
            DoesAggroOnFriendlyFire    = template.DoesAggroOnFriendlyFire;
            HasABrain                  = template.HasABrain;
            DoesDropWeaponsOnBallistic = template.DoesDropWeaponsOnBallistic;
            CanPickupRanged            = template.CanPickup_Ranged;
            CanPickupMelee             = template.CanPickup_Melee;
            CanPickupOther             = template.CanPickup_Other;
            TargetCapacity             = template.TargetCapacity;
            TargetTrackingTime         = template.TargetTrackingTime;
            NoFreshTargetTime          = template.NoFreshTargetTime;
            AssaultPointOverridesSkirmishPointWhenFurtherThan = template.AssaultPointOverridesSkirmishPointWhenFurtherThan;
            RunSpeed                  = template.RunSpeed;
            WalkSpeed                 = template.WalkSpeed;
            SneakSpeed                = template.SneakSpeed;
            CrawlSpeed                = template.CrawlSpeed;
            TurnSpeed                 = template.TurnSpeed;
            MaxJointLimit             = template.MaxJointLimit;
            MovementRotMagnitude      = template.MovementRotMagnitude;
            TotalMustard              = template.TotalMustard;
            BleedDamageMult           = template.BleedDamageMult;
            BleedRateMultiplier       = template.BleedRateMultiplier;
            BleedVFXIntensity         = template.BleedVFXIntensity;
            DamMult_Projectile        = template.DamMult_Projectile;
            DamMult_Explosive         = template.DamMult_Explosive;
            DamMult_Melee             = template.DamMult_Melee;
            DamMult_Piercing          = template.DamMult_Piercing;
            DamMult_Blunt             = template.DamMult_Blunt;
            DamMult_Cutting           = template.DamMult_Cutting;
            DamMult_Thermal           = template.DamMult_Thermal;
            DamMult_Chilling          = template.DamMult_Chilling;
            DamMult_EMP               = template.DamMult_EMP;
            LinkDamageMultipliers     = template.LinkDamageMultipliers;
            LinkStaggerMultipliers    = template.LinkStaggerMultipliers;
            StartingLinkIntegrity     = template.StartingLinkIntegrity.Select(o => new Vector2Serializable(o)).ToList();
            StartingChanceBrokenJoint = template.StartingChanceBrokenJoint;
            ShudderThreshold          = template.ShudderThreshold;
            ConfusionThreshold        = template.ConfusionThreshold;
            ConfusionMultiplier       = template.ConfusionMultiplier;
            ConfusionTimeMax          = template.ConfusionTimeMax;
            StunThreshold             = template.StunThreshold;
            StunMultiplier            = template.StunMultiplier;
            StunTimeMax               = template.StunTimeMax;
            CanBeGrabbed              = template.CanBeGrabbed;
            CanBeSevered              = template.CanBeSevered;
            CanBeStabbed              = template.CanBeStabbed;
            CanBeSurpressed           = template.CanBeSurpressed;
            SuppressionMult           = template.SuppressionMult;
            DoesJointBreakKill_Head   = template.DoesJointBreakKill_Head;
            DoesJointBreakKill_Upper  = template.DoesJointBreakKill_Upper;
            DoesJointBreakKill_Lower  = template.DoesJointBreakKill_Lower;
            DoesSeverKill_Head        = template.DoesSeverKill_Head;
            DoesSeverKill_Upper       = template.DoesSeverKill_Upper;
            DoesSeverKill_Lower       = template.DoesSeverKill_Lower;
            DoesExplodeKill_Head      = template.DoesExplodeKill_Head;
            DoesExplodeKill_Upper     = template.DoesExplodeKill_Upper;
            DoesExplodeKill_Lower     = template.DoesExplodeKill_Lower;

            this.template = template;
        }