Ejemplo n.º 1
0
    void Awake()
    {
        m_pMovements = GetComponent <AePlayerMovements>();
        m_pMouseX    = GetComponent <AeMouseLookX>();
        m_pMouseY    = GetComponentInChildren <AeMouseLookY>();

        m_pBones           = GetComponent <AeBones>();
        m_pStats           = GetComponent <AeStats>();
        m_pNetworkCaller   = GetComponent <AeNetworkPlayerController>();
        m_pAnimator        = GetComponent <AeAnimSynchronizer>();
        m_pInputs          = GetComponent <AeInputController>();
        m_pWeaponHandler   = GetComponentInChildren <AeNetShoot>();
        m_pNickNameHandler = GetComponentInChildren <AeHeadName>();

        m_pTrigger = GetComponent <AePlayerTrigger>();

        m_pStatsSynchronizer = GetComponentInChildren <AeControllerStats>();

        controller = GetComponent <CharacterController>();

        Component [] Cameras = gameObject.GetComponentsInChildren <Camera>();
        NormalCam = Cameras[0].GetComponent <Camera>();
        GunCam    = Cameras[1].GetComponent <Camera>();
        Listener  = GetComponentInChildren <AudioListener>();

        if (networkView.isMine)
        {
            m_pMouseX.enabled  = true;
            m_pMouseY.enabled  = true;
            NormalCam.enabled  = true;
            GunCam.enabled     = true;
            Listener.enabled   = true;
            m_pTrigger.enabled = true;
        }
    }
Ejemplo n.º 2
0
    public static bool canDamage(Gauntlet g, AeStats h, bool isMine)
    {
        if (!h.AlreadyTouchedByMagic)
        {
            if (!isMine)
            {
                return(true);
            }
            else if (g.SelfDamage)
            {
                return(true);
            }
        }
        else if (g.MultipleTimeDamage)
        {
            if (!isMine)
            {
                return(true);
            }
            else if (g.SelfDamage)
            {
                return(true);
            }
        }

        return(false);
    }
Ejemplo n.º 3
0
    void DoExplosion(GameObject epicenter)
    {
        var layerMask = ~(1 << 8);

        Collider [] RangedToExplosion = Physics.OverlapSphere(epicenter.transform.position, 3.0f);

        for (int i = 0; i < RangedToExplosion.Length; i++)
        {
            if (AeTools.isEnnemy(RangedToExplosion[i].tag))
            {
                RaycastHit newHit;
                AeStats    stat = RangedToExplosion[i].transform.root.GetComponent <AeStats>();

                if (stat != null && AeTools.canDamage(this, stat, stat.networkView.isMine))
                {
                    if (Physics.Linecast(epicenter.transform.position, RangedToExplosion[i].transform.position, out newHit, layerMask))
                    {
                        if (AeTools.isEnnemy(newHit.transform.tag))
                        {
                            HitDamageInfo info = new HitDamageInfo();
                            stat.AlreadyTouchedByMagic = true;
                            info.stat           = stat;
                            info.damageLocation = newHit.transform.tag;
                            info.hit            = newHit;
                            info.isEnnemy       = true;
                            info.weaponID       = m_iItemID;
                            info.weaponDamage   = Damage;
                            info.player         = stat.networkView;
                            info.physicsFailed  = false;

                            AeCore.m_pCoreGame.m_pNetworkHandler.ServerInformations.GetCurrentMode().SendAttack(info);
                        }
                    }
                    else
                    {
                        HitDamageInfo info = new HitDamageInfo();
                        stat.AlreadyTouchedByMagic = true;
                        info.stat           = stat;
                        info.damageLocation = RangedToExplosion[i].transform.tag;
                        info.isEnnemy       = true;
                        info.weaponID       = m_iItemID;
                        info.weaponDamage   = Damage;
                        info.player         = stat.networkView;
                        info.physicsFailed  = false;

                        AeCore.m_pCoreGame.m_pNetworkHandler.ServerInformations.GetCurrentMode().SendAttack(info);
                    }
                }
            }
        }
    }
Ejemplo n.º 4
0
    void OnTriggerEnter(Collider collid)
    {
        if (transform.root.networkView.isMine)
        {
            if (AeTools.isEnnemy(collid.tag))
            {
                AeStats h = collid.transform.root.GetComponent <AeStats>();

                if (AeTools.canDamage(gauntlet, h, collid.transform.root.networkView.isMine))
                {
                    buildInfo(collid.gameObject, h);
                }
            }
        }
    }
Ejemplo n.º 5
0
    void buildInfo(GameObject obj, AeStats h)
    {
        HitDamageInfo info = new HitDamageInfo();

        h.AlreadyTouchedByMagic = true;

        info.damageLocation = obj.tag;
        info.weaponDamage   = gauntlet.Damage;
        info.isEnnemy       = true;
        info.physicsFailed  = false;
        info.player         = obj.transform.root.networkView;

        info.stat = h;

        info.weaponID = gauntlet.m_iItemID;

        Collided.Add(info);

        AeCore.m_pCoreGame.m_pNetworkHandler.ServerInformations.GetCurrentMode().SendAttack(info);
    }
Ejemplo n.º 6
0
    public static HitDamageInfo ShootingRaycast(Transform spawn, Vector3 direction, float range, float force, int damage, int weaponID)
    {
        HitDamageInfo info = new HitDamageInfo();
        RaycastHit    hit;
        Vector3       tempDir   = spawn.TransformDirection(direction);
        var           layerMask = ~(1 << 8);

        if (Physics.Raycast(spawn.position, tempDir, out hit, range, layerMask))
        {
            if (hit.rigidbody)
            {
                hit.rigidbody.AddForceAtPosition(force * tempDir, hit.point);
            }

            if (AeTools.isEnnemy(hit.collider.tag))
            {
                AeStats healthInfo = hit.collider.transform.root.GetComponent <AeStats>();
                info.isEnnemy       = true;
                info.damageLocation = hit.collider.tag;
                info.player         = hit.collider.transform.root.networkView;
                info.stat           = healthInfo;
                info.weaponDamage   = damage;
                info.weaponID       = weaponID;
            }
            else
            {
                info.damageLocation = hit.collider.tag;
            }
        }
        else
        {
            info.physicsFailed = true;
        }

        info.hit = hit;
        return(info);
    }