public void Initialize(Asset asset, int assetIndex) { this.asset = asset; Category = asset.custom.category; AssetIndex = assetIndex; ClickableBehaviour.Title = EnumHelper.GetEnumMemberAttributeValue(asset.custom.category); ClickableBehaviour.Text = Formatter.BuildStixDataEntityDescription(asset); ClickableBehaviour.ActionText = "select"; ClickableBehaviour.PrimaryAction = () => { SelectionHelper.DeselectAllMitigations(); var title = EnumHelper.GetEnumMemberAttributeValue(asset.custom.category); var description = Formatter.BuildStixDataEntityDescription(asset, true, false); var selectedActions = new SelectedAction[] { new SelectedAction( ActionType.OpenExternalReferences, () => ReferencesHelper.OpenExternalReferences(asset)) }; HelperObjects.SelectedInfoBar.SelectEntity(title, "Asset", description, selectedActions); }; ClickableBehaviour.HasSecondaryAction = ReferencesHelper.AddReferencesAsAction(asset, ClickableBehaviour); }
public void Initialize(AttackPattern attackPattern) { Label.text = attackPattern.name; ClickableBehaviour.Title = attackPattern.name; ClickableBehaviour.Text = Formatter.BuildStixDataEntityDescription(attackPattern); ClickableBehaviour.HasSecondaryAction = ReferencesHelper.AddReferencesAsAction(attackPattern, ClickableBehaviour); }
public void Initialize(AttackPattern attackPattern) { AttackPattern = attackPattern; InjectionVector = attackPattern.custom.injection_vector.categories.TakeRandom(); ActivationZone = attackPattern.custom.activation_zone.categories.TakeRandom(); TargetedAssetIndex = AssetSockets.Assets.Select((a, i) => a.WithAssetSocketIndex(i)) .Where((a) => a != null && a.custom.category == ActivationZone) .TakeRandom() .AssetSocketIndex; SpawnPoint = SpawnPoints.GetSpawnPoint(InjectionVector); transform.position = SpawnPoint.position; StartHealth = Health = attackPattern.CalculateHealthFromSeverity(StartHealth); Health *= State.I.PlayConfiguration.Difficulty; DamageToAsset = attackPattern.CalculateDamageToAssetFromImpact(DamageToAsset); value = StartValue + WaveSpawner.I.WaveIndex; // Tweak scale and speed after value to indicate which attacks are more important Model.localScale *= Mathf.Pow(DamageToAsset / 30f, 2f); Speed *= Mathf.Pow(DamageToAsset / 30f, 2f); // Hover and click actions ClickableBehaviour.Title = attackPattern.name; ClickableBehaviour.Text = Formatter.BuildStixDataEntityDescription(attackPattern); ClickableBehaviour.ActionText = "select"; ClickableBehaviour.PrimaryAction = () => { SelectionHelper.DeselectAllMitigations(); var title = attackPattern.name; var description = Formatter.BuildStixDataEntityDescription(attackPattern, false, false); SelectedAction[] selectedActions = ReferencesHelper.HasExternalReferences(attackPattern) ? new SelectedAction[] { new SelectedAction( ActionType.OpenExternalReferences, () => ReferencesHelper.OpenExternalReferences(attackPattern)) } : null; HelperObjects.SelectedInfoBar.SelectEntity(title, "Mitigation", description, selectedActions); }; ClickableBehaviour.HasSecondaryAction = ReferencesHelper.AddReferencesAsAction(attackPattern, ClickableBehaviour); }
public void Initialize( IPlacementArea area, IntVector2 gridPosition, IntVector2 sizeOffset, CourseOfAction courseOfAction) { this.courseOfAction = courseOfAction; placementArea = area; areaGridPosition = gridPosition; areaSizeOffset = sizeOffset; Damage = courseOfAction.GetDamage(); Range = courseOfAction.GetRange(); RangeIndicator.localScale = Vector3.one * Range * 2f; FireRate = courseOfAction.GetFireRate(); // Hover and click actions ClickableBehaviour.Title = courseOfAction.custom.mitigation; ClickableBehaviour.Text = Formatter.BuildStixDataEntityDescription(courseOfAction); ClickableBehaviour.ActionText = "select"; ClickableBehaviour.PrimaryAction = () => { SelectionHelper.DeselectAllMitigations(); IsSelected = true; var title = courseOfAction.custom.mitigation; var description = Formatter.BuildStixDataEntityDescription(courseOfAction, true, false); var selectedActions = new SelectedAction[] { new SelectedAction(ActionType.Sell, sell), new SelectedAction( ActionType.OpenExternalReferences, () => ReferencesHelper.OpenExternalReferences(courseOfAction)) }; HelperObjects.SelectedInfoBar.SelectEntity(title, "Mitigation", description, selectedActions); }; ClickableBehaviour.HasSecondaryAction = ReferencesHelper.AddReferencesAsAction(courseOfAction, ClickableBehaviour); }
public void Initialize(CourseOfAction courseOfAction) { Value = courseOfAction.GetValue(); Label.text = courseOfAction.custom.category; ClickableBehaviour.Title = courseOfAction.custom.category; ClickableBehaviour.Text = Formatter.BuildStixDataEntityDescription(courseOfAction); ClickableBehaviour.ActionText = "implement"; ClickableBehaviour.PrimaryAction = () => { // Destroy the old ghost if it's already in the game var oldGhost = FindObjectOfType <GhostMitigationBehaviour>(); if (oldGhost != null) { oldGhost.DestroyGhost(); } BuildManager.I.EnterBuildMode(courseOfAction); UnityHelper.Instantiate(HelperObjects.GhostMitigationPrefab); }; ClickableBehaviour.HasSecondaryAction = ReferencesHelper.AddReferencesAsAction(courseOfAction, ClickableBehaviour); }