Пример #1
0
    public int GetTouchObjID()
    {
        int        object_id          = -1;
        float      skill_blear_radius = 0.5f;
        Vector3    touch_pos          = new Vector3(position.x, position.y, 0);
        Ray        ray = Camera.main.ScreenPointToRay(touch_pos);
        RaycastHit hitInfo;
        GameObject hitGameObj = null;
        int        layermask  = (1 << LayerMask.NameToLayer("Terrains"))
                                | (1 << LayerMask.NameToLayer("Character"));
        SkillControllerInterface player_skill_ctrl = GetControl();

        if (null != player_skill_ctrl)
        {
            SkillInputData skill_input_data = player_skill_ctrl.GetSkillInputData(SkillTags);
            if (null != skill_input_data)
            {
                skill_blear_radius = skill_input_data.targetChooseRange;
            }
        }
        if (Physics.Raycast(ray, out hitInfo, 200f, layermask))
        {
            Collider[] hitObjs = Physics.OverlapSphere(hitInfo.point, skill_blear_radius, (1 << LayerMask.NameToLayer("Character")));
            if (hitObjs.Length > 0)
            {
                hitGameObj = hitObjs[0].gameObject;
                if (null != hitGameObj)
                {
                    SharedGameObjectInfo targetInfo = LogicSystem.GetSharedGameObjectInfo(hitGameObj);
                    if (null != targetInfo && IsEnemy())
                    {
                        // camp
                        int        camp_self = -1;
                        GameObject goSelf    = DashFire.LogicSystem.PlayerSelf;
                        if (null != goSelf)
                        {
                            CharacterCamp camp_s = goSelf.GetComponent <CharacterCamp>();
                            if (null != camp_s)
                            {
                                camp_self = camp_s.m_CampId;
                            }
                        }
                        CharacterCamp camp_t = hitGameObj.GetComponent <CharacterCamp>();
                        if (camp_t != null && camp_self != camp_t.m_CampId &&
                            targetInfo.Blood > 0)
                        {
                            object_id = targetInfo.m_LogicObjectId;
                        }
                    }
                }
            }
        }

        if (-1 != object_id && null != hitGameObj)
        {
            GfxSystem.PublishGfxEvent("Op_InputEffect", "Input", GestureEvent.OnSingleTap, hitGameObj.transform.position.x, hitGameObj.transform.position.y, hitGameObj.transform.position.z, true, false);
        }

        return(object_id);
    }
Пример #2
0
    protected void SetEndure(GameObject obj, bool isEndure)
    {
        CharacterCamp cc = obj.GetComponent <CharacterCamp>();

        if (null != cc)
        {
            cc.SetEndure(isEndure);
        }
    }
Пример #3
0
 // Use this for initialization
 void Start()
 {
     m_SkillManager = gameObject.GetComponent <SkillManager>();
     SkillCollider[] skill_colliders = gameObject.GetComponentsInChildren <SkillCollider>();
     foreach (SkillCollider co in skill_colliders)
     {
         co.SetColliderManager(this);
     }
     m_ImpactSystem = new ImpactSystem();
     m_CampInfo     = gameObject.GetComponent <CharacterCamp>();
 }
Пример #4
0
    public void Remove(CharacterCamp camp, GameObject obj)
    {
        switch (camp)
        {
        case CharacterCamp.enemy:
            enemies.Remove(obj);
            uiController.AddKillNum();
            break;

        case CharacterCamp.comrades:
            comrades.Remove(obj);
            break;
        }
    }
Пример #5
0
    private void SendImpactWithOutDamage(GameObject target, ImpactInfo impactInfo)
    {
        SharedGameObjectInfo targetInfo = LogicSystem.GetSharedGameObjectInfo(target);
        CharacterCamp        info       = target.GetComponent <CharacterCamp>();

        if (null != info && info.m_IsEndure && IsBreakEndure(impactInfo))
        {
            info.SetEndure(false);
        }
        if (null != info && info.m_IsEndure)
        {
        }
        else
        {
            if (CanBreakSkill(target))
            {
                BreakCurSkill(target);
                if (null != targetInfo && targetInfo.Blood > 0)
                {
                    switch (impactInfo.m_Type)
                    {
                    case ImpactType.HitFly:
                        SendHitFlyImpact(target, impactInfo);
                        break;

                    case ImpactType.Stiffness:
                        SendStiffnessImpact(target, impactInfo);
                        break;

                    case ImpactType.KnockDown:
                        SendKnockDownImpact(target, impactInfo);
                        break;

                    case ImpactType.Grab:
                        SendGrabImpact(target, impactInfo);
                        break;

                    case ImpactType.MicroGHitFly:
                        SendMicroGHitFly(target, impactInfo);
                        break;
                    }
                }
            }
        }
    }
Пример #6
0
    public bool IsEnimy(GameObject go)
    {
        if (go == null)
        {
            return(false);
        }
        CharacterCamp campinfo = go.GetComponent <CharacterCamp>();

        if (campinfo == null)
        {
            return(false);
        }
        if (m_CampInfo == null)
        {
            return(true);
        }
        if (m_CampInfo.m_CampId != campinfo.m_CampId)
        {
            return(true);
        }
        return(false);
    }
Пример #7
0
    private List <GameObject> FiltUnEndureObj(List <GameObject> list)
    {
        List <GameObject> result = new List <GameObject>();

        foreach (GameObject obj in list)
        {
            if (obj == null)
            {
                continue;
            }
            CharacterCamp cc = obj.GetComponent <CharacterCamp>();
            if (cc == null || cc.m_IsEndure)
            {
                continue;
            }
            DashFire.SharedGameObjectInfo selfObjInfo = DashFire.LogicSystem.GetSharedGameObjectInfo(obj);
            if (selfObjInfo == null || selfObjInfo.Blood <= 0)
            {
                continue;
            }
            result.Add(obj);
        }
        return(result);
    }