예제 #1
0
 public void FixedUpdate()
 {
     if (BasePV.IsMine && !disabled)
     {
         LayerMask mask = Layers.PlayerAttackBox | Layers.EnemyBox;
         if (!isCollider)
         {
             mask |= Layers.Ground;
         }
         Collider[] array = Physics.OverlapSphere(base.transform.position, 0.6f, mask.value);
         bool       flag3 = false;
         for (int i = 0; i < array.Length; i++)
         {
             GameObject gameObject = array[i].gameObject;
             bool       flag4      = gameObject.layer == 16;
             if (flag4)
             {
                 TitanTrigger component = gameObject.GetComponent <TitanTrigger>();
                 bool         flag5     = !(component == null) && !this.myTitanTriggers.Contains(component);
                 if (flag5)
                 {
                     component.IsCollide = true;
                     this.myTitanTriggers.Add(component);
                 }
             }
             else
             {
                 bool flag6 = gameObject.layer == 10;
                 if (flag6)
                 {
                     TITAN component2 = gameObject.transform.root.gameObject.GetComponent <TITAN>();
                     bool  flag7      = component2 != null;
                     if (flag7)
                     {
                         bool flag8 = component2.abnormalType == AbnormalType.Crawler;
                         if (flag8)
                         {
                             bool flag9 = gameObject.name == "head";
                             if (flag9)
                             {
                                 component2.BasePV.RPC("DieByCannon", component2.BasePV.owner, new object[]
                                 {
                                     this.myHero.BasePV.viewID
                                 });
                                 component2.DieBlow(base.transform.position, 0.2f);
                                 i = array.Length;
                             }
                         }
                         else
                         {
                             bool flag10 = gameObject.name == "head";
                             if (flag10)
                             {
                                 component2.BasePV.RPC("DieByCannon", component2.BasePV.owner, new object[]
                                 {
                                     this.myHero.BasePV.viewID
                                 });
                                 component2.DieHeadBlow(base.transform.position, 0.2f);
                                 i = array.Length;
                             }
                             else
                             {
                                 bool flag11 = UnityEngine.Random.Range(0f, 1f) < 0.5f;
                                 if (flag11)
                                 {
                                     component2.HitL(base.transform.position, 0.05f);
                                 }
                                 else
                                 {
                                     component2.HitR(base.transform.position, 0.05f);
                                 }
                             }
                         }
                         this.destroyMe();
                     }
                 }
                 else
                 {
                     bool flag12 = gameObject.layer == 9 && (gameObject.transform.root.name.Contains("CannonWall") || gameObject.transform.root.name.Contains("CannonGround"));
                     if (flag12)
                     {
                         flag3 = true;
                     }
                 }
             }
         }
         bool flag13 = !this.isCollider && !flag3;
         if (flag13)
         {
             this.isCollider = true;
             base.GetComponent <SphereCollider>().enabled = true;
         }
     }
 }