// if you need more than one Listener for of each type (KillableListener etc), create subclasses like this, inheriting from KillableListener
    public override void Despawning(TriggeredSpawner.EventType eType)
    {
        base.Despawning(eType);

        // your code here.
        Debug.Log("KillableListenerSubclass (on MainCamera): Played died! Take some action");
    }
Beispiel #2
0
 public void StartTracking(TriggeredSpawnerV2 sourceSpawner, TriggeredSpawner.EventType eType, string customEventName, TriggeredWaveMetaData waveMeta)
 {
     _sourceSpawner   = sourceSpawner;
     _waveEventType   = eType;
     _customEventName = customEventName;
     _waveMeta        = waveMeta;
 }
Beispiel #3
0
        private void Despawn(TriggeredSpawner.EventType eType)
        {
            if (LevelSettings.AppIsShuttingDown || _isDespawning)
            {
                return;
            }

            _isDespawning = true;

            if (listener != null)
            {
                listener.Despawning(eType, _trans);
            }

            PoolBoss.Despawn(_trans);
        }
 /// <summary>
 /// This method gets called after the last item in a wave has finished spawning.
 /// </summary>
 /// <param name="eType">The event type.</param>
 /// <param name="spec">The wave specifics.</param>
 public virtual void WaveFinishedSpawning(TriggeredSpawner.EventType eType, TriggeredWaveSpecifics spec)
 {
     // please do not manipulate values in the "spec". It is for your read-only information
 }
 /// <summary>
 /// This method gets called immediately after a wave item spawns.
 /// </summary>
 /// <param name="eType">The event type.</param>
 /// <param name="spawnedTrans">The spawned item.</param>
 public virtual void ItemSpawned(TriggeredSpawner.EventType eType, Transform spawnedTrans)
 {
     // do something to the Transform.
 }
 /// <summary>
 /// This method gets called if a wave item fails to spawn.
 /// </summary>
 /// <param name="eType">The event type.</param>
 /// <param name="failedPrefabTrans">The prefab that failed to spawn.</param>
 public virtual void ItemFailedToSpawn(TriggeredSpawner.EventType eType, Transform failedPrefabTrans)
 {
     // your code here. The transform is not spawned. This is just a reference
 }
 /// <summary>
 /// This method gets called if a parent spawner's wave ends early, to cancel the child spawners' waves as well.
 /// </summary>
 /// <param name="eType">The event type.</param>
 /// <param name="customEventName">The custom event name, if any.</param>
 /// <param name="transmitterTrans">The parent spawner's Transform.</param>
 /// <param name="receiverSpawnerCount">The count of all child spawners of the parent.</param>
 public virtual void PropagatedWaveEndedEarly(TriggeredSpawner.EventType eType, string customEventName,
                                              Transform transmitterTrans, int receiverSpawnerCount)
 {
     // your code here.
 }
 /// <summary>
 /// This method gets called if the wave ends early.
 /// </summary>
 /// <param name="eType">The event type.</param>
 public virtual void WaveEndedEarly(TriggeredSpawner.EventType eType)
 {
     // your code here.
 }
 /// <summary>
 /// This method gets calls when a child spawner gets notified to call its wave from a parent spawner. Override if you need custom logic.
 /// </summary>
 /// <param name="eType">The event type.</param>
 /// <param name="transmitterTrans">The parent spawner's Transform.</param>
 public virtual void PropagatedEventReceived(TriggeredSpawner.EventType eType, Transform transmitterTrans)
 {
     // your code here.
 }
 /// <summary>
 /// This method gets calls when a spawner gets ready to call events on child spawners. Override if you need custom logic.
 /// </summary>
 /// <param name="eType">The event type.</param>
 /// <param name="transmitterTrans">The parent spawner's Transform.</param>
 /// <param name="receiverSpawnerCount">The count of all child spawners of the parent.</param>
 public virtual void EventPropagating(TriggeredSpawner.EventType eType, Transform transmitterTrans,
                                      int receiverSpawnerCount)
 {
     // your code here.
 }
 public virtual void Despawning(TriggeredSpawner.EventType eType)
 {
     // your code here.
 }
 public virtual void Despawning(TriggeredSpawner.EventType eType, Transform transDespawning)
 {
     // Your code here.
 }
Beispiel #13
0
    private bool RenderEventTypeControls(EventDespawnSpecifics despawnSettings, string toggleText, TriggeredSpawner.EventType eventType)
    {
        DTInspectorUtility.VerticalSpace(2);
        EditorGUI.indentLevel = 0;

        var state = despawnSettings.eventEnabled;
        var text  = " " + toggleText;

        // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression
        if (!state)
        {
            GUI.backgroundColor = DTInspectorUtility.InactiveHeaderColor;
        }
        else
        {
            GUI.backgroundColor = DTInspectorUtility.ActiveHeaderColor;
        }

        DTInspectorUtility.StartGroupHeader(0);

        var newTog = EditorGUILayout.BeginToggleGroup(text, despawnSettings.eventEnabled);

        if (newTog != despawnSettings.eventEnabled)
        {
            UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "toggle " + toggleText + " enabled");
            despawnSettings.eventEnabled = newTog;
        }


        if (!despawnSettings.eventEnabled)
        {
            EditorGUILayout.EndToggleGroup();
            DTInspectorUtility.EndGroupHeader();
            return(_isDirty);
        }

        DTInspectorUtility.BeginGroupedControls();

        if (TriggeredSpawner.eventsWithTagLayerFilters.Contains(eventType))
        {
            DTInspectorUtility.StartGroupHeader(1);
            var newUseLayerFilter = EditorGUILayout.BeginToggleGroup(" Layer filters", despawnSettings.useLayerFilter);
            if (newUseLayerFilter != despawnSettings.useLayerFilter)
            {
                UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "toggle Layer filters");
                despawnSettings.useLayerFilter = newUseLayerFilter;
            }
            DTInspectorUtility.EndGroupHeader();
            if (despawnSettings.useLayerFilter)
            {
                for (var i = 0; i < despawnSettings.matchingLayers.Count; i++)
                {
                    var newMatch = EditorGUILayout.LayerField("Layer Match " + (i + 1), despawnSettings.matchingLayers[i]);
                    if (newMatch == despawnSettings.matchingLayers[i])
                    {
                        continue;
                    }
                    UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "change Layer Match");
                    despawnSettings.matchingLayers[i] = newMatch;
                }
                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(12);
                GUI.contentColor = DTInspectorUtility.BrightButtonColor;
                if (GUILayout.Button(new GUIContent("Add", "Click to add a Layer Match at the end"), EditorStyles.toolbarButton, GUILayout.Width(60)))
                {
                    UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "add Layer Match");

                    despawnSettings.matchingLayers.Add(0);
                }
                GUILayout.Space(10);
                if (despawnSettings.matchingLayers.Count > 1)
                {
                    if (GUILayout.Button(new GUIContent("Remove", "Click to remove the last Layer Match"), EditorStyles.toolbarButton, GUILayout.Width(60)))
                    {
                        UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "remove Layer Match");

                        despawnSettings.matchingLayers.RemoveAt(despawnSettings.matchingLayers.Count - 1);
                    }
                }
                GUI.contentColor = Color.white;
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.EndToggleGroup();

            DTInspectorUtility.AddSpaceForNonU5();

            DTInspectorUtility.StartGroupHeader(1);
            despawnSettings.useTagFilter = EditorGUILayout.BeginToggleGroup(" Tag filter", despawnSettings.useTagFilter);
            DTInspectorUtility.EndGroupHeader();
            if (despawnSettings.useTagFilter)
            {
                for (var i = 0; i < despawnSettings.matchingTags.Count; i++)
                {
                    var newMatch = EditorGUILayout.TagField("Tag Match " + (i + 1), despawnSettings.matchingTags[i]);
                    if (newMatch == despawnSettings.matchingTags[i])
                    {
                        continue;
                    }
                    UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "change Tag Match");
                    despawnSettings.matchingTags[i] = newMatch;
                }
                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(12);
                GUI.contentColor = DTInspectorUtility.BrightButtonColor;
                if (GUILayout.Button(new GUIContent("Add", "Click to add a Tag Match at the end"), EditorStyles.toolbarButton, GUILayout.Width(60)))
                {
                    UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "add Tag Match");
                    despawnSettings.matchingTags.Add("Untagged");
                }
                GUILayout.Space(10);
                if (despawnSettings.matchingTags.Count > 1)
                {
                    if (GUILayout.Button(new GUIContent("Remove", "Click to remove the last Tag Match"), EditorStyles.toolbarButton, GUILayout.Width(60)))
                    {
                        UndoHelper.RecordObjectPropertyForUndo(ref _isDirty, _settings, "remove Tag Match");
                        despawnSettings.matchingTags.RemoveAt(despawnSettings.matchingLayers.Count - 1);
                    }
                }
                GUI.contentColor = Color.white;
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.EndToggleGroup();
        }
        else
        {
            EditorGUI.indentLevel = 0;
            DTInspectorUtility.ShowColorWarningBox("No additional properties for this event type.");
        }

        DTInspectorUtility.EndGroupedControls();

        EditorGUILayout.EndToggleGroup();
        DTInspectorUtility.EndGroupHeader();

        return(_isDirty);
    }