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); }
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); }
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; }