Пример #1
0
        public static BeHitState GetBeHitStateFromStr(string str)
        {
            BeHitState result = BeHitState.kDefault;

            if (str.Equals("kDefault"))
            {
                result = BeHitState.kDefault;
            }
            else if (str.Equals("kStand"))
            {
                result = BeHitState.kStand;
            }
            else if (str.Equals("kStiffness"))
            {
                result = BeHitState.kStiffness;
            }
            else if (str.Equals("kKnockDown"))
            {
                result = BeHitState.kKnockDown;
            }
            else if (str.Equals("kLauncher"))
            {
                result = BeHitState.kLauncher;
            }
            return(result);
        }
Пример #2
0
        private List <GameObject> FiltStateObjects(List <GameObject> objects)
        {
            List <GameObject> result = new List <GameObject>();

            if (objects == null)
            {
                return(result);
            }
            foreach (GameObject obj in objects)
            {
                if (m_IsFiltSupperArmer)
                {
                    if (GrabTargetTrigger.IsGameObjectSupperArmer(obj))
                    {
                        continue;
                    }
                }
                BeHitState state = SkillDamageManager.GetBeHitState(obj);
                if (!IsFiltState(state))
                {
                    result.Add(obj);
                }
            }
            return(result);
        }
Пример #3
0
 private bool IsFiltState(BeHitState state)
 {
     foreach (BeHitState bs in m_FiltStates)
     {
         if (bs == state)
         {
             return(true);
         }
     }
     return(false);
 }
Пример #4
0
 private void LoadFiltStateConfig(ScriptableData.CallData stCall)
 {
     if (stCall.GetParamNum() >= 1)
     {
         BeHitState filtstate = TriggerUtil.GetBeHitStateFromStr(stCall.GetParamId(0));
         if (!IsFiltState(filtstate))
         {
             m_FiltStates.Add(filtstate);
         }
     }
 }
Пример #5
0
        public override bool IsSatisfied(GameObject obj, SkillInstance instance)
        {
            BeHitState obj_state = SkillDamageManager.GetBeHitState(obj);

            if (m_IsEquals && m_TargetState == obj_state)
            {
                return(true);
            }
            if (!m_IsEquals && m_TargetState != obj_state)
            {
                return(true);
            }
            return(false);
        }
Пример #6
0
        public void SendImpactToObject(GameObject source, GameObject target, Dictionary <BeHitState, StateImpact> stateimpacts, int skillid, long hit_count_id)
        {
            if (stateimpacts == null)
            {
                return;
            }
            if (IsUserStandUp(target))
            {
                return;
            }
            BeHitState  state       = GetBeHitState(target);
            StateImpact stateimpact = null;

            if (!stateimpacts.TryGetValue(state, out stateimpact))
            {
                stateimpacts.TryGetValue(BeHitState.kDefault, out stateimpact);
            }
            if (stateimpact == null)
            {
                return;
            }
            int        final_skill_id = -1;
            GameObject damageOwner    = TriggerUtil.GetFinalOwner(source, skillid, out final_skill_id);

            //Debug.Log("------------send impact to object " + target.name);
            for (int i = 0; i < stateimpact.m_Impacts.Count; i++)
            {
                LogicSystem.NotifyGfxHitTarget(damageOwner, stateimpact.m_Impacts[i].ImpactId, target, 1, final_skill_id,
                                               stateimpact.m_Impacts[i].RemainTime, source.transform.position,
                                               TriggerUtil.GetObjFaceDir(source), hit_count_id);
            }

            /*
             * foreach (ImpactData im in stateimpact.m_Impacts) {
             * LogicSystem.NotifyGfxHitTarget(damageOwner, im.ImpactId, target, 1, final_skill_id,
             *                                        im.RemainTime, source.transform.position,
             *                                        TriggerUtil.GetObjFaceDir(source), hit_count_id);
             * }*/
        }
Пример #7
0
        public override bool IsSatisfied(GameObject obj, SkillInstance instance)
        {
            if (!m_IsIncludeBehitState)
            {
                BeHitState state = SkillDamageManager.GetBeHitState(obj);
                if (state != BeHitState.kStand)
                {
                    return(false);
                }
            }
            float height = TriggerUtil.GetHeightWithGround(obj);

            if (m_IsJudgeFly && height >= m_Height)
            {
                return(true);
            }
            if (!m_IsJudgeFly && height <= m_Height)
            {
                return(true);
            }
            return(false);
        }
Пример #8
0
    public StateImpact FindImpactByState(SkillScript skillscript, int impactgroupid, BeHitState state)
    {
        ImpactGroup ig = skillscript.GetImpactGroupById(impactgroupid);

        if (ig == null)
        {
            return(null);
        }
        foreach (StateImpact stateinfo in ig.m_StateImpact)
        {
            if (state == stateinfo.m_State)
            {
                return(stateinfo);
            }
        }
        if (state == BeHitState.kDefault)
        {
            return(null);
        }
        else
        {
            return(FindImpactByState(skillscript, impactgroupid, BeHitState.kDefault));
        }
    }