Example #1
0
        public void Update()
        {
            if (!UsePlayerDamage)
            {
                return;
            }

            ICECreaturePlayerDamageObject _damage = GetPlayerDamage();

            if (_damage != null)
            {
                if (m_ActiveDamage != _damage)
                {
                    m_ActiveDamage = _damage;
                    m_ActiveDamage.Init();
                }
            }
            else if (m_ActiveDamage != null)
            {
                m_ActiveDamage.Reset();
                m_ActiveDamage = null;
            }

            if (m_ActiveDamage != null)
            {
                if (m_ActiveDamage.IsReady(m_Controller))
                {
                    HandlePlayerDamage(m_ActiveDamage);
                }

                m_ActiveDamage.Update();
            }
        }
Example #2
0
        private void HandlePlayerDamage(ICECreaturePlayerDamageObject _damage)
        {
            if (m_Controller == null || m_Controller.Creature.ActiveTarget == null || m_Controller.Creature.ActiveTarget.TargetGameObject == null)
            {
                return;
            }

            Health _health = null;

            if ((_health = m_Controller.Creature.ActiveTarget.TargetGameObject.GetComponentInParent <Health>()) != null)
            {
                _health.Damage(_damage.Damage, m_Controller.gameObject.transform.position, -m_Controller.gameObject.transform.forward * _damage.Force, m_Controller.gameObject);
            }
        }
Example #3
0
        private void DrawPlayerDamage(ICECreatureControl _control, ICECreaturePlayerDamageObject _damage)
        {
            EditorGUI.indentLevel++;
            _damage.Damage = ICEEditorLayout.Slider("Damage", "", _damage.Damage, 0.05f, 0, 100);
            //_damage.Type =  (DamageType)ICEEditorLayout.EnumPopup( "Damage Type", "", _damage.Type );
            EditorGUILayout.Separator();
            _damage.DamageBehaviourModeKey = BehaviourEditor.BehaviourSelect(_control, "Trigger Behaviour", "", _damage.DamageBehaviourModeKey, "ATTACK");

            _damage.Range = ICEEditorLayout.MaxDefaultSlider("Trigger Range", "", _damage.Range, 0.05f, 0, ref _damage.RangeMax, 2, "");
            ICEEditorLayout.MinMaxGroup("Trigger Interval", "", ref _damage.IntervalMin, ref _damage.IntervalMax, 0, 60, 0.05f, "");
            ICEEditorLayout.MinMaxGroup("Trigger Interruption Interval", "", ref _damage.InterruptionIntervalMin, ref _damage.InterruptionIntervalMax, 0, 60, 0.05f, "");
            ICEEditorLayout.MinMaxGroup("Trigger Limiter", "", ref _damage.LimitMin, ref _damage.LimitMax, 0, 60, 1, "");
            _damage.Force         = ICEEditorLayout.DefaultSlider("Force", "", _damage.Force, 0.25f, 0, 100, 20.0f, "");
            _damage.MuzzleFlash   = (Renderer)EditorGUILayout.ObjectField("Muzzle Flash", _damage.MuzzleFlash, typeof(Renderer), true);
            _damage.Sound         = (AudioClip)EditorGUILayout.ObjectField("Fire Sound", _damage.Sound, typeof(AudioClip), false);
            _damage.FxRandonPitch = ICEEditorLayout.DefaultSlider("Fire Fx Randon Pitch", "", _damage.FxRandonPitch, 0.001f, -1, 1, 0.86f, "");
            EditorGUI.indentLevel--;
        }