Пример #1
0
 private GameObject checkIfHitHand(Transform hand)
 {
     foreach (Collider collider in Physics.OverlapSphere(hand.GetComponent <SphereCollider>().transform.position, 31f))
     {
         if (collider.transform.root.tag == "Player")
         {
             GameObject gameObject = collider.transform.root.gameObject;
             TITAN_EREN te         = gameObject.GetComponent <TITAN_EREN>();
             if (te != null)
             {
                 if (!te.isHit)
                 {
                     te.hitByTitan();
                 }
                 return(gameObject);
             }
             HERO he = gameObject.GetComponent <HERO>();
             if ((he != null) && !he.isInvincible())
             {
                 return(gameObject);
             }
         }
     }
     return(null);
 }
Пример #2
0
        // TITAN_EREN.netPlayAnimation
        public static bool IsAnimationPlayValid(TITAN_EREN eren, PhotonMessageInfo info)
        {
            if (IN_GAME_MAIN_CAMERA.Gametype != GameType.Multiplayer ||
                (info != null && eren.photonView.ownerId == info.sender.Id))
            {
                return(true);
            }

            Mod.Logger.Error($"'TITAN_EREN.netPlayAnimation' from #{(info == null ? "?" : info.sender.Id.ToString())}.");
            if (info.sender != null && !FengGameManagerMKII.IgnoreList.Contains(info.sender.Id))
            {
                FengGameManagerMKII.IgnoreList.Add(info.sender.Id);
            }

            return(false);
        }
Пример #3
0
 public ErenSkin(TITAN_EREN tit, string skin) : base(tit.gameObject, new string[] { skin })
 {
 }
Пример #4
0
    private void Update()
    {
        if (this.launched)
        {
            this.baseT.Rotate(this.r);
            this.v -= (Vector3)((20f * Vector3.up) * Time.deltaTime);
            this.baseT.position += this.v * Time.deltaTime;
            if ((IN_GAME_MAIN_CAMERA.gametype == GAMETYPE.SINGLE) || this.basePV.isMine)
            {
                LayerMask mask  = ((int)1) << LayerMask.NameToLayer("Ground");
                LayerMask mask2 = ((int)1) << LayerMask.NameToLayer("Players");
                LayerMask mask3 = ((int)1) << LayerMask.NameToLayer("EnemyAABB");
                LayerMask mask4 = (mask2 | mask) | mask3;
                foreach (RaycastHit hit in Physics.SphereCastAll(this.baseT.position, 2.5f * this.baseT.lossyScale.x,
                                                                 this.baseT.position - this.oldP, Vector3.Distance(this.baseT.position, this.oldP), mask4))
                {
                    Collider collider = hit.collider;
                    if (!(collider == null))
                    {
                        GameObject gameObject = collider.gameObject;
                        if (!(gameObject == null))
                        {
                            GameObject gameObject2 = gameObject.transform.root.gameObject;
                            if (!(gameObject2 == null))
                            {
                                switch (gameObject.layer)
                                {
                                case 8:
                                case 13:
                                    if (gameObject2.tag.NullFix() == "Player")
                                    {
                                        MONO component = gameObject2.GetComponent <MONO>();
                                        if (!(component == null))
                                        {
                                            if (component.species == SPECIES.Hero)
                                            {
                                                HERO hero = component as HERO;
                                                if (!hero.HasDied() && !hero.isInvincible())
                                                {
                                                    this.hitPlayer(gameObject2, hero);
                                                }
                                            }
                                            else if (component.species == SPECIES.TitanEren)
                                            {
                                                TITAN_EREN titan_EREN = component as TITAN_EREN;
                                                if (!titan_EREN.isHit)
                                                {
                                                    titan_EREN.hitByTitan();
                                                }
                                            }
                                        }
                                    }
                                    break;

                                case 9:
                                    this.explore();
                                    break;

                                case 11:
                                {
                                    TITAN component2 = gameObject2.GetComponent <TITAN>();
                                    if (component2 != null && !component2.hasDie)
                                    {
                                        Vector3 position = this.baseT.position;
                                        if (IN_GAME_MAIN_CAMERA.gametype == GAMETYPE.SINGLE)
                                        {
                                            component2.hitAnkle();
                                        }
                                        else
                                        {
                                            PhotonView photonView = PhotonView.Find(this.viewID);
                                            if (photonView != null)
                                            {
                                                Vector3 position2 = photonView.transform.position;
                                            }
                                            component2.photonView.RPC("hitAnkleRPC", PhotonTargets.All, new object[0]);
                                        }
                                    }
                                    this.explore();
                                    break;
                                }
                                }
                            }
                        }
                    }
                }
                this.oldP = this.baseT.position;
                //    if (LayerMask.LayerToName(hit.collider.gameObject.layer) == "EnemyAABB")
                //    {
                //        GameObject gameObject = hit.collider.gameObject.transform.root.gameObject;
                //        if ((gameObject.GetComponent<TITAN>() != null) && !gameObject.GetComponent<TITAN>().hasDie)
                //        {
                //            gameObject.GetComponent<TITAN>().hitAnkle();
                //            Vector3 position = this.baseT.position;
                //            if (IN_GAME_MAIN_CAMERA.gametype == GAMETYPE.SINGLE)
                //            {
                //                gameObject.GetComponent<TITAN>().hitAnkle();
                //            }
                //            else
                //            {
                //                if ((this.baseT.root.gameObject.GetComponent<EnemyfxIDcontainer>() != null) && (PhotonView.Find(this.baseT.root.gameObject.GetComponent<EnemyfxIDcontainer>().myOwnerViewID) != null))
                //                {
                //                    position = PhotonView.Find(this.baseT.root.gameObject.GetComponent<EnemyfxIDcontainer>().myOwnerViewID).transform.position;
                //                }
                //                gameObject.GetComponent<HERO>().photonView.RPC("hitAnkleRPC", PhotonTargets.All, new object[0]);
                //            }
                //        }
                //        this.explore();
                //    }
                //    else if (LayerMask.LayerToName(hit.collider.gameObject.layer) == "Players")
                //    {
                //        GameObject hero = hit.collider.gameObject.transform.root.gameObject;
                //        if (hero.GetComponent<TITAN_EREN>() != null)
                //        {
                //            if (!hero.GetComponent<TITAN_EREN>().isHit)
                //            {
                //                hero.GetComponent<TITAN_EREN>().hitByTitan();
                //            }
                //        }
                //        else if ((hero.GetComponent<HERO>() != null) && !hero.GetComponent<HERO>().isInvincible())
                //        {
                //            this.hitPlayer(hero);
                //        }
                //    }
                //    else if (LayerMask.LayerToName(hit.collider.gameObject.layer) == "Ground")
                //    {
                //        this.explore();
                //    }
                //}
                //this.oldP = this.baseT.position;
            }
        }
    }
Пример #5
0
    private void Update()
    {
        if (!launched)
        {
            return;
        }
        base.transform.Rotate(r);
        v -= 20f * Vector3.up * Time.deltaTime;
        base.transform.position += v * Time.deltaTime;
        if (IN_GAME_MAIN_CAMERA.Gametype == GameType.Multiplayer && !PhotonNetwork.isMasterClient)
        {
            return;
        }
        LayerMask mask       = 1 << LayerMask.NameToLayer("Ground");
        LayerMask mask2      = 1 << LayerMask.NameToLayer("Players");
        LayerMask mask3      = 1 << LayerMask.NameToLayer("EnemyAABB");
        LayerMask mask4      = (int)mask2 | (int)mask | (int)mask3;
        Vector3   position   = base.transform.position;
        Vector3   lossyScale = base.transform.lossyScale;

        RaycastHit[] array = Physics.SphereCastAll(position, 2.5f * lossyScale.x, base.transform.position - oldP, Vector3.Distance(base.transform.position, oldP), mask4);
        for (int i = 0; i < array.Length; i++)
        {
            RaycastHit raycastHit = array[i];
            switch (LayerMask.LayerToName(raycastHit.collider.gameObject.layer))
            {
            case "EnemyAABB":
                GameObject gameObject = raycastHit.collider.gameObject.transform.root.gameObject;
                TITAN      titan      = gameObject.GetComponent <TITAN>();
                if (titan != null && !titan.hasDie)
                {
                    titan.hitAnkle();
                    if (IN_GAME_MAIN_CAMERA.Gametype == GameType.Multiplayer)
                    {
                        titan.photonView.RPC("hitAnkleRPC", PhotonTargets.Others, titan.photonView.ownerId);
                    }
                }
                explode();
                break;

            case "Players":
                GameObject gameObject2 = raycastHit.collider.gameObject.transform.root.gameObject;
                TITAN_EREN eren        = gameObject2.GetComponent <TITAN_EREN>();
                if (eren != null)
                {
                    if (!eren.isHit)
                    {
                        eren.hitByTitan();
                    }
                }
                else
                {
                    HERO hero = gameObject2.GetComponent <HERO>();
                    if (hero != null && !hero.HasDied() && !hero.IsInvincible() && !hero.isGrabbed)
                    {
                        if (IN_GAME_MAIN_CAMERA.Gametype == GameType.Singleplayer)
                        {
                            hero.Die(v.normalized * 1000f + Vector3.up * 50f, isBite: false);
                        }
                        else if (IN_GAME_MAIN_CAMERA.Gametype == GameType.Multiplayer)
                        {
                            hero.MarkDead();
                            int                num            = -1;
                            string             text           = "Rock";
                            EnemyfxIDcontainer efxIDContainer = base.transform.root.gameObject.GetComponent <EnemyfxIDcontainer>();
                            if (efxIDContainer != null)
                            {
                                num  = efxIDContainer.myOwnerViewID;
                                text = efxIDContainer.titanName;
                            }
                            hero.photonView.RPC("netDie", PhotonTargets.All, v.normalized * 1000f + Vector3.up * 50f, false, num, text, true);
                        }
                    }
                }
                break;

            case "Ground":
                explode();
                break;
            }
        }
        oldP = base.transform.position;
    }
Пример #6
0
 public void RemoveET(TITAN_EREN hero)
 {
     eren = null;
 }
Пример #7
0
 public void AddET(TITAN_EREN hero)
 {
     eren = hero;
 }
Пример #8
0
    private void Update()
    {
        if (this.launched)
        {
            baseT.Rotate(this.r);
            this.v -= (Vector3)((20f * Vector3.up) * Time.deltaTime);

            baseT.position += (Vector3)(this.v * Time.deltaTime);
            if ((IN_GAME_MAIN_CAMERA.gametype != GAMETYPE.MULTIPLAYER) || PhotonNetwork.isMasterClient)
            {
                LayerMask mask  = ((int)1) << LayerMask.NameToLayer("Ground");
                LayerMask mask2 = ((int)1) << LayerMask.NameToLayer("Players");
                LayerMask mask3 = ((int)1) << LayerMask.NameToLayer("EnemyAABB");
                LayerMask mask4 = (mask2 | mask) | mask3;
                foreach (RaycastHit hit in Physics.SphereCastAll(baseT.position, 2.5f * baseT.lossyScale.x, baseT.position - this.oldP, Vector3.Distance(baseT.position, this.oldP), (int)mask4))
                {
                    string namelayer = LayerMask.LayerToName(hit.collider.gameObject.layer);
                    if (namelayer == "EnemyAABB")
                    {
                        GameObject gameObject = hit.collider.gameObject.transform.root.gameObject;
                        TITAN      titan      = gameObject.GetComponent <TITAN>();
                        if ((titan != null) && !titan.hasDie)
                        {
                            titan.hitAnkle();
                            Vector3 position = baseT.position;
                            if (IN_GAME_MAIN_CAMERA.gametype == GAMETYPE.SINGLE)
                            {
                                titan.hitAnkle();
                            }
                            else
                            {
                                EnemyfxIDcontainer fx   = baseT.root.gameObject.GetComponent <EnemyfxIDcontainer>();
                                PhotonView         viev = PhotonView.Find(fx.myOwnerViewID);
                                if ((fx != null) && (viev != null))
                                {
                                    Vector3 vector2 = viev.transform.position;
                                }
                                gameObject.GetComponent <HERO>().photonView.RPC("hitAnkleRPC", PhotonTargets.All, new object[0]);
                            }
                        }
                        this.explore();
                    }
                    else if (namelayer == "Players")
                    {
                        GameObject hero = hit.collider.gameObject.transform.root.gameObject;
                        TITAN_EREN te   = hero.GetComponent <TITAN_EREN>();
                        HERO       hr   = null;
                        if (te != null)
                        {
                            if (!te.isHit)
                            {
                                te.hitByTitan();
                            }
                        }
                        else if (((hr = hero.GetComponent <HERO>()) != null) && !hr.isInvincible())
                        {
                            this.hitPlayer(hr);
                        }
                    }
                    else if (namelayer != "Leave")
                    {
                        this.explore();
                    }
                }
                this.oldP = baseT.position;
            }
        }
    }