示例#1
0
        public override void OnInspectorGUI()
        {
            AresEditorUtility.DrawBoxGroup(null, () =>
            {
                if (m_maxPoints.floatValue <= 0f)
                {
                    EditorGUILayout.HelpBox("\"Max Health\" must be greater than 0!", MessageType.Error);
                    m_maxPoints.floatValue = 0f;
                }
                EditorGUILayout.PropertyField(m_maxPoints);

                m_points.floatValue = Mathf.Clamp(m_points.floatValue, 0f, m_maxPoints.floatValue);
                EditorGUILayout.PropertyField(m_points);
                EditorGUILayout.PropertyField(m_destroyOnKilled);
            });

            AresEditorUtility.DrawBoxGroup("Regeneration", () =>
            {
                m_regenerationDelay.floatValue = Mathf.Max(m_regenerationDelay.floatValue, 0f);
                EditorGUILayout.PropertyField(m_regenerationDelay);

                if (m_regenerationRate.floatValue == 0f)
                {
                    EditorGUILayout.HelpBox("\"Regeneration Rate\" is 0! Are you changing this value at runtime?", MessageType.Warning);
                }
                EditorGUILayout.PropertyField(m_regenerationRate);
            });

            AresEditorUtility.DrawBoxGroup("Invulnerability", () =>
            {
                m_invulnerabilityTime.floatValue = Mathf.Max(m_invulnerabilityTime.floatValue, 0f);
                EditorGUILayout.PropertyField(m_invulnerabilityTime);
            });
        }
示例#2
0
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            serializedObject.Update();
            AresEditorUtility.DrawDamageGroup(m_damage);
            serializedObject.ApplyModifiedProperties();
        }
示例#3
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            AresEditorUtility.DrawBoxGroup(null, DrawShooterGroup);
            AresEditorUtility.DrawBoxGroup("Audio", DrawAudioGroup);

            serializedObject.ApplyModifiedProperties();
        }
示例#4
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            AresEditorUtility.DrawBoxGroup(null, () =>
            {
                if (m_maxCharge.floatValue <= 0f)
                {
                    EditorGUILayout.HelpBox("\"Max Charge\" must be greater than 0!", MessageType.Error);
                    m_maxCharge.floatValue = 0f;
                }

                EditorGUILayout.PropertyField(m_maxCharge);
                EditorGUILayout.PropertyField(m_resetOnEndFire);
            });

            serializedObject.ApplyModifiedProperties();
        }
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            serializedObject.Update();

            AresEditorUtility.DrawBoxGroup("Tracking", () =>
            {
                EditorGUILayout.PropertyField(m_canTrack);

                if (m_canTrack.boolValue)
                {
                    m_maxLockTime.floatValue = Mathf.Max(m_maxLockTime.floatValue, 0f);
                    EditorGUILayout.PropertyField(m_maxLockTime);
                }
            });

            serializedObject.ApplyModifiedProperties();
        }
示例#6
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            AresEditorUtility.DrawBoxGroup(null, () =>
            {
                if (m_maxHeat.floatValue <= 0f)
                {
                    EditorGUILayout.HelpBox("\"Max Heat\" must be greater than 0!", MessageType.Error);
                    m_maxHeat.floatValue = 0f;
                }

                EditorGUILayout.PropertyField(m_maxHeat);

                if (m_heatPerShot.floatValue <= 0f)
                {
                    EditorGUILayout.HelpBox("\"Heat Per Shot\" must be greater than 0!", MessageType.Error);
                    m_heatPerShot.floatValue = 0f;
                }

                EditorGUILayout.PropertyField(m_heatPerShot);
            });

            AresEditorUtility.DrawBoxGroup("Cooldown", () =>
            {
                m_cooldownDelay.floatValue = Mathf.Max(m_cooldownDelay.floatValue, 0f);
                EditorGUILayout.PropertyField(m_cooldownDelay);

                m_cooldownRate.floatValue = Mathf.Max(m_cooldownRate.floatValue, 0f);
                EditorGUILayout.PropertyField(m_cooldownRate);
            });

            AresEditorUtility.DrawBoxGroup("Overheat", () =>
            {
                m_overheatDelay.floatValue = Mathf.Max(m_overheatDelay.floatValue, 0f);
                EditorGUILayout.PropertyField(m_overheatDelay);

                m_overheatRate.floatValue = Mathf.Max(m_overheatRate.floatValue, 0f);
                EditorGUILayout.PropertyField(m_overheatRate);
            });

            serializedObject.ApplyModifiedProperties();
        }
示例#7
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            AresEditorUtility.DrawBoxGroup(null, () =>
            {
                EditorGUILayout.PropertyField(m_isPlayerControlled);
            });

            AresEditorUtility.DrawBoxGroup("Controls", DrawControlsGUI);
            AresEditorUtility.DrawBoxGroup("Burst Fire", DrawBurstGUI);
            AresEditorUtility.DrawFoldoutGroup(ref m_showEvents, "Events", DrawEventsGUI);

            EditorGUI.BeginDisabledGroup(true);
            EditorGUILayout.FloatField("Shots Per Second", m_controller.data.shotsPerSecond);
            EditorGUILayout.FloatField("Damage Per Second", m_controller.data.damagePerSecond);
            EditorGUI.EndDisabledGroup();

            serializedObject.ApplyModifiedProperties();
        }
示例#8
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            AresEditorUtility.DrawDamageGroup(m_damage);

            AresEditorUtility.DrawBoxGroup("Physics", () =>
            {
                if (m_speed.floatValue <= 0)
                {
                    EditorGUILayout.HelpBox("\"Speed\" must be greater than 0!", MessageType.Error);
                    m_speed.floatValue = 0f;
                }

                EditorGUILayout.PropertyField(m_speed);

                m_acceleration.floatValue = Mathf.Max(m_acceleration.floatValue, 0f);
                EditorGUILayout.PropertyField(m_acceleration);

                if (m_acceleration.floatValue > 0f)
                {
                    m_maxSpeed.floatValue = Mathf.Min(m_maxSpeed.floatValue, m_speed.floatValue);
                    EditorGUILayout.PropertyField(m_maxSpeed);
                }
            });

            AresEditorUtility.DrawBoxGroup("Tracking", () =>
            {
                EditorGUILayout.PropertyField(m_target);

                if (m_angularSpeed.floatValue <= 0f && m_target.objectReferenceValue != null)
                {
                    EditorGUILayout.HelpBox("\"Angular Speed\" must be greater than 0!", MessageType.Error);
                    m_angularSpeed.floatValue = 0f;
                }

                EditorGUILayout.PropertyField(m_angularSpeed);
            });

            serializedObject.ApplyModifiedProperties();
        }
示例#9
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            if (m_isInfinite.boolValue && !m_useMagazine.boolValue)
            {
                EditorGUILayout.HelpBox("If \"Is Infinite\" and \"Use Magazine\" are true and false respectively, then \"Shooter Ammo\" component is not required!", MessageType.Warning);
            }

            AresEditorUtility.DrawBoxGroup(null, () =>
            {
                EditorGUILayout.PropertyField(m_isInfinite);

                if (!m_isInfinite.boolValue)
                {
                    if (m_useMagazine.boolValue)
                    {
                        m_capacity.intValue = m_magazineCapacity.intValue * m_shotsPerMagazine.intValue;
                        m_count.intValue    = m_magazineCount.intValue * (m_shotsPerMagazine.intValue - 1) + m_shotsInMagazine.intValue;
                    }

                    if (m_capacity.intValue <= 0)
                    {
                        EditorGUILayout.HelpBox("\"Capacity\" must be greater than 0!", MessageType.Error);
                        m_capacity.intValue = 0;
                    }

                    m_count.intValue = Mathf.Clamp(m_count.intValue, 0, m_capacity.intValue);

                    EditorGUI.BeginDisabledGroup(m_useMagazine.boolValue);
                    EditorGUILayout.PropertyField(m_capacity);
                    EditorGUILayout.PropertyField(m_count);
                    EditorGUI.EndDisabledGroup();
                }
            });

            AresEditorUtility.DrawBoxGroup("Magazine", () =>
            {
                EditorGUILayout.PropertyField(m_useMagazine);

                if (m_useMagazine.boolValue)
                {
                    if (!m_isInfinite.boolValue)
                    {
                        m_magazineCount.intValue = Mathf.Clamp(m_magazineCount.intValue, 0, m_magazineCapacity.intValue);

                        EditorGUILayout.PropertyField(m_magazineCapacity);
                        EditorGUILayout.PropertyField(m_magazineCount);
                    }

                    m_shotsInMagazine.intValue = Mathf.Clamp(m_shotsInMagazine.intValue, 0, m_shotsPerMagazine.intValue);

                    if (controller != null &&
                        controller.isBurstFire &&
                        controller.shotsPerBurst > 0 &&
                        m_shotsPerMagazine.intValue % controller.shotsPerBurst != 0)
                    {
                        EditorGUILayout.HelpBox("\"Shots Per Magazine\" is not divisible by \"Shots Per Burst\"!", MessageType.Error);
                    }

                    if (m_shotsPerMagazine.intValue <= 0)
                    {
                        EditorGUILayout.HelpBox("\"Shots Per Magazine\" must be greater than 0!", MessageType.Error);
                        m_shotsPerMagazine.intValue = 0;
                    }

                    EditorGUILayout.PropertyField(m_shotsPerMagazine);
                    EditorGUILayout.PropertyField(m_shotsInMagazine);

                    if (controller != null && controller.isBurstFire)
                    {
                        EditorGUI.BeginDisabledGroup(true);
                        EditorGUILayout.FloatField("Bursts Per Magazine", m_ammo.data.burstsPerMagazine);
                        EditorGUI.EndDisabledGroup();
                    }

                    EditorGUILayout.PropertyField(m_isAutoReload);
                    EditorGUILayout.PropertyField(m_isSimultaneousReload);

                    if (m_reloadTime.floatValue <= 0f)
                    {
                        EditorGUILayout.HelpBox("\"Reload Time\" must be greater than 0!", MessageType.Error);
                        m_reloadTime.floatValue = 0f;
                    }

                    EditorGUILayout.PropertyField(m_reloadTime);

                    if (!m_isSimultaneousReload.boolValue)
                    {
                        if (m_consecutiveReloadTime.floatValue <= 0f)
                        {
                            EditorGUILayout.HelpBox("\"Consecutive Reload Time\" must be greater than 0!", MessageType.Error);
                            m_consecutiveReloadTime.floatValue = 0f;
                        }

                        EditorGUILayout.PropertyField(m_consecutiveReloadTime);
                    }

                    EditorGUILayout.PropertyField(m_reloadButton);
                }
            });

            if (!m_isInfinite.boolValue)
            {
                AresEditorUtility.DrawBoxGroup("Regeneration", () =>
                {
                    EditorGUILayout.PropertyField(m_useRegeneration);

                    if (m_useRegeneration.boolValue)
                    {
                        m_regenerationDelay.floatValue = Mathf.Max(m_regenerationDelay.floatValue, 0f);
                        m_regenerationRate.floatValue  = Mathf.Max(m_regenerationRate.floatValue, 0f);

                        EditorGUILayout.PropertyField(m_regenerationDelay);
                        EditorGUILayout.PropertyField(m_regenerationRate);
                    }
                });
            }

            AresEditorUtility.DrawFoldoutGroup(ref m_showEvents, "Events", () =>
            {
                EditorGUILayout.PropertyField(m_onCountChanged);

                // Do not show reload events if there is no reload action
                if (m_useMagazine.boolValue)
                {
                    EditorGUILayout.PropertyField(m_onBeginReload);
                    EditorGUILayout.PropertyField(m_onEndReload);
                }
            });

            serializedObject.ApplyModifiedProperties();
        }