Ejemplo n.º 1
0
    public void UpdateByTargetPoint(TargetPoint targetPoint, string effectName)
    {
        //IL_002f: Unknown result type (might be due to invalid IL or missing references)
        //IL_0034: Unknown result type (might be due to invalid IL or missing references)
        //IL_0036: Unknown result type (might be due to invalid IL or missing references)
        //IL_003b: Unknown result type (might be due to invalid IL or missing references)
        //IL_003c: Unknown result type (might be due to invalid IL or missing references)
        //IL_0041: Unknown result type (might be due to invalid IL or missing references)
        //IL_0045: Unknown result type (might be due to invalid IL or missing references)
        //IL_0050: Unknown result type (might be due to invalid IL or missing references)
        //IL_0055: Unknown result type (might be due to invalid IL or missing references)
        //IL_0056: Unknown result type (might be due to invalid IL or missing references)
        //IL_005b: Unknown result type (might be due to invalid IL or missing references)
        //IL_005d: Unknown result type (might be due to invalid IL or missing references)
        //IL_0062: Unknown result type (might be due to invalid IL or missing references)
        //IL_0069: Unknown result type (might be due to invalid IL or missing references)
        //IL_006a: Unknown result type (might be due to invalid IL or missing references)
        if (effectTransform == null)
        {
            effectTransform = EffectManager.GetEffect(effectName, transform);
        }
        Transform  cameraTransform = MonoBehaviourSingleton <InGameCameraManager> .I.cameraTransform;
        Vector3    targetPoint2    = targetPoint.GetTargetPoint();
        Vector3    val             = cameraTransform.get_position() - targetPoint2;
        Vector3    pos             = val.get_normalized() * targetPoint.scaledMarkerZShift + targetPoint2;
        Quaternion rotation        = cameraTransform.get_rotation();

        effectTransform.Set(pos, rotation);
    }
Ejemplo n.º 2
0
    void Update()
    {
        if (AimEnabled)
        {
            point = Camera.main.ScreenPointToRay(Input.mousePosition);

            int layerMask = (1 << 8);
            if (Physics.Raycast(point, out pointHit, 10000, layerMask))
            {
                TargetPoint targetPoint = pointHit.transform.gameObject.GetComponentInChildren <TargetPoint> ();
                targetIndicator.transform.position = targetPoint.GetTargetPoint().position;
                targetIndicator.SetActive(true);
                Target = targetPoint.GetTargetPoint();
            }
            else
            {
                targetIndicator.SetActive(false);
                Target = null;
            }
        }
    }
    public void Update()
    {
        //IL_003b: Unknown result type (might be due to invalid IL or missing references)
        //IL_0040: Unknown result type (might be due to invalid IL or missing references)
        //IL_004c: Unknown result type (might be due to invalid IL or missing references)
        //IL_0051: Unknown result type (might be due to invalid IL or missing references)
        BrainParam.SensorParam sensorParam = brain.param.sensorParam;
        Character owner          = brain.owner;
        Vector2   owner_pos2     = owner.positionXZ;
        Vector2   owner_forward2 = owner.forwardXZ;

        counter.Clear();
        bool        isAutoMode        = false;
        TargetPoint actionTargetPoint = null;

        if (brain.owner is Self)
        {
            Self self = brain.owner as Self;
            isAutoMode = self.isAutoMode;
            if (isAutoMode)
            {
                AutoSelfController autoSelfController = self.controller as AutoSelfController;
                actionTargetPoint = autoSelfController.actionTargetPoint;
            }
        }
        List <StageObject> targetObjectList = brain.GetTargetObjectList();

        targetObjectList.ForEach(delegate(StageObject opponent_obj)
        {
            //IL_0045: Unknown result type (might be due to invalid IL or missing references)
            //IL_004a: Unknown result type (might be due to invalid IL or missing references)
            //IL_0050: Unknown result type (might be due to invalid IL or missing references)
            //IL_0055: Unknown result type (might be due to invalid IL or missing references)
            //IL_0072: Unknown result type (might be due to invalid IL or missing references)
            //IL_007e: Unknown result type (might be due to invalid IL or missing references)
            //IL_0083: Unknown result type (might be due to invalid IL or missing references)
            //IL_0088: Unknown result type (might be due to invalid IL or missing references)
            //IL_008a: Unknown result type (might be due to invalid IL or missing references)
            //IL_008d: Unknown result type (might be due to invalid IL or missing references)
            //IL_0092: Unknown result type (might be due to invalid IL or missing references)
            //IL_0097: Unknown result type (might be due to invalid IL or missing references)
            //IL_0099: Unknown result type (might be due to invalid IL or missing references)
            //IL_00a6: Unknown result type (might be due to invalid IL or missing references)
            //IL_00ab: Unknown result type (might be due to invalid IL or missing references)
            //IL_00b0: Unknown result type (might be due to invalid IL or missing references)
            //IL_00d1: Unknown result type (might be due to invalid IL or missing references)
            //IL_00d6: Unknown result type (might be due to invalid IL or missing references)
            //IL_00e5: Unknown result type (might be due to invalid IL or missing references)
            //IL_00ea: Unknown result type (might be due to invalid IL or missing references)
            //IL_0351: Unknown result type (might be due to invalid IL or missing references)
            //IL_0356: Unknown result type (might be due to invalid IL or missing references)
            //IL_0383: Unknown result type (might be due to invalid IL or missing references)
            //IL_0388: Unknown result type (might be due to invalid IL or missing references)
            //IL_038a: Unknown result type (might be due to invalid IL or missing references)
            //IL_038c: Unknown result type (might be due to invalid IL or missing references)
            //IL_0392: Unknown result type (might be due to invalid IL or missing references)
            //IL_0397: Unknown result type (might be due to invalid IL or missing references)
            //IL_039c: Unknown result type (might be due to invalid IL or missing references)
            //IL_03e2: Unknown result type (might be due to invalid IL or missing references)
            //IL_03e7: Unknown result type (might be due to invalid IL or missing references)
            //IL_03e9: Unknown result type (might be due to invalid IL or missing references)
            //IL_03eb: Unknown result type (might be due to invalid IL or missing references)
            //IL_03f1: Unknown result type (might be due to invalid IL or missing references)
            //IL_03f6: Unknown result type (might be due to invalid IL or missing references)
            //IL_03fb: Unknown result type (might be due to invalid IL or missing references)
            //IL_0408: Unknown result type (might be due to invalid IL or missing references)
            //IL_042c: Unknown result type (might be due to invalid IL or missing references)
            //IL_042f: Unknown result type (might be due to invalid IL or missing references)
            //IL_043f: Unknown result type (might be due to invalid IL or missing references)
            //IL_0444: Unknown result type (might be due to invalid IL or missing references)
            //IL_0446: Unknown result type (might be due to invalid IL or missing references)
            //IL_044b: Unknown result type (might be due to invalid IL or missing references)
            //IL_044e: Unknown result type (might be due to invalid IL or missing references)
            //IL_0453: Unknown result type (might be due to invalid IL or missing references)
            Character character = opponent_obj as Character;
            if (!(character != null) || !character.isDead)
            {
                OpponentRecord opponentRecord = FindOrRegist(opponent_obj);
                bool flag = opponentRecord.record != null;
                Vector3 client_pos;
                if (flag)
                {
                    client_pos = opponentRecord.record.pos;
                }
                else
                {
                    client_pos            = Vector3.get_zero();
                    opponentRecord.record = new RecordData();
                }
                RecordData record    = opponentRecord.record;
                record.pos           = owner.GetTargetPosition(opponent_obj);
                Vector2 val          = record.pos.ToVector2XZ();
                Vector2 p            = val - owner_pos2;
                Vector2 p2           = val - brain.frontPositionXZ;
                record.distance      = p.get_magnitude();
                record.distanceFront = p2.get_magnitude();
                record.rootAngle     = Utility.Angle360(owner_forward2, p);
                record.frontAngle    = Utility.Angle360(owner_forward2, p2);
                record.isView        = false;
                if (record.distanceFront <= sensorParam.viewDistance)
                {
                    float num = (record.frontAngle + sensorParam.viewAngle / 2f) % 360f;
                    if (num < sensorParam.viewAngle)
                    {
                        record.isView = true;
                        counter.viewNum++;
                    }
                }
                record.place = AIUtility.GetPlaceOfAngle360(record.rootAngle);
                switch (record.place)
                {
                case PLACE.RIGHT:
                    counter.rightNum++;
                    break;

                case PLACE.LEFT:
                    counter.leftNum++;
                    break;

                case PLACE.FRONT:
                    counter.frontNum++;
                    break;

                case PLACE.BACK:
                    counter.backNum++;
                    break;
                }
                record.isNearPlace = false;
                if (record.distance <= sensorParam.nearCheckDistance)
                {
                    record.isNearPlace = true;
                    counter.nearNum++;
                }
                float num2 = record.distance - brain.rootInternalRedius;
                switch (record.place)
                {
                case PLACE.FRONT:
                    num2 -= brain.rootFrontDistance;
                    break;

                case PLACE.BACK:
                    num2 -= brain.rootBackDistance;
                    break;
                }
                if (num2 < sensorParam.shortDistance)
                {
                    record.distanceType = DISTANCE.SHORT_SHORT;
                }
                else if (num2 >= sensorParam.shortDistance && num2 < sensorParam.middleDistance)
                {
                    record.distanceType = DISTANCE.SHORT;
                }
                else if (num2 >= sensorParam.middleDistance && num2 < sensorParam.longDistance)
                {
                    record.distanceType = DISTANCE.MIDDLE;
                }
                else
                {
                    record.distanceType = DISTANCE.LONG;
                }
                Vector3 val2            = record.pos;
                float attackPosDistance = record.distance;
                if (isAutoMode)
                {
                    if (actionTargetPoint != null)
                    {
                        val2              = actionTargetPoint.GetTargetPoint();
                        Vector2 val3      = val2.ToVector2XZ() - owner_pos2;
                        attackPosDistance = val3.get_magnitude();
                    }
                }
                else if (owner is Player)
                {
                    Player player = owner as Player;
                    if (player.targetingPoint != null)
                    {
                        val2              = player.targetingPoint.GetTargetPoint();
                        Vector2 val4      = val2.ToVector2XZ() - owner_pos2;
                        attackPosDistance = val4.get_magnitude();
                    }
                }
                record.attackPos         = val2;
                record.attackPosDistance = attackPosDistance;
                record.moveLength        = 0f;
                if (flag)
                {
                    record.moveLength = AIUtility.GetLengthWithBetweenPosition(client_pos, record.pos);
                }
                Vector2 p3             = owner_pos2 - val;
                float angle            = Utility.Angle360(opponent_obj.forwardXZ, p3);
                record.placeOfOpponent = AIUtility.GetPlaceOfAngle360(angle);
            }
        });
    }
Ejemplo n.º 4
0
 private void UpdateRegionTarget()
 {
     //IL_0096: Unknown result type (might be due to invalid IL or missing references)
     //IL_009b: Unknown result type (might be due to invalid IL or missing references)
     //IL_009d: Unknown result type (might be due to invalid IL or missing references)
     //IL_009f: Unknown result type (might be due to invalid IL or missing references)
     //IL_00a4: Unknown result type (might be due to invalid IL or missing references)
     //IL_00ac: Unknown result type (might be due to invalid IL or missing references)
     //IL_00b1: Unknown result type (might be due to invalid IL or missing references)
     //IL_00cf: Unknown result type (might be due to invalid IL or missing references)
     //IL_00e5: Unknown result type (might be due to invalid IL or missing references)
     //IL_00ea: Unknown result type (might be due to invalid IL or missing references)
     //IL_00ec: Unknown result type (might be due to invalid IL or missing references)
     //IL_00ee: Unknown result type (might be due to invalid IL or missing references)
     //IL_00f3: Unknown result type (might be due to invalid IL or missing references)
     //IL_00f5: Unknown result type (might be due to invalid IL or missing references)
     //IL_00f7: Unknown result type (might be due to invalid IL or missing references)
     //IL_00f9: Unknown result type (might be due to invalid IL or missing references)
     //IL_00fe: Unknown result type (might be due to invalid IL or missing references)
     if (!(player == null))
     {
         player.targetingPointList.Clear();
         if (!(player.actionTarget == null))
         {
             Enemy enemy = player.actionTarget as Enemy;
             if (!(enemy == null) && !enemy.isDead && enemy.enableTargetPoint)
             {
                 TargetPoint[] targetPoints = enemy.targetPoints;
                 if (targetPoints != null && targetPoints.Length != 0)
                 {
                     TargetPoint targetPoint = null;
                     float       num         = 3.40282347E+38f;
                     Vector3     position    = player._transform.get_position();
                     Vector2     val         = position.ToVector2XZ();
                     Vector2     forwardXZ   = player.forwardXZ;
                     forwardXZ.Normalize();
                     int i = 0;
                     for (int num2 = targetPoints.Length; i < num2; i++)
                     {
                         TargetPoint targetPoint2 = targetPoints[i];
                         if (targetPoint2.get_gameObject().get_activeInHierarchy())
                         {
                             Vector3 targetPoint3 = targetPoint2.GetTargetPoint();
                             Vector2 val2         = targetPoint3.ToVector2XZ();
                             Vector2 val3         = val2 - val;
                             float   sqrMagnitude = val3.get_sqrMagnitude();
                             if (targetPoint == null || sqrMagnitude < num)
                             {
                                 targetPoint = targetPoint2;
                                 num         = sqrMagnitude;
                             }
                         }
                     }
                     if (targetPoint != null)
                     {
                         player.targetingPointList.Add(targetPoint);
                     }
                 }
             }
         }
     }
 }
    private void FuncBasisMode()
    {
        //IL_0096: Unknown result type (might be due to invalid IL or missing references)
        //IL_009b: Unknown result type (might be due to invalid IL or missing references)
        //IL_00c9: Unknown result type (might be due to invalid IL or missing references)
        //IL_00cb: Unknown result type (might be due to invalid IL or missing references)
        //IL_00d0: Unknown result type (might be due to invalid IL or missing references)
        //IL_00d5: Unknown result type (might be due to invalid IL or missing references)
        //IL_0245: Unknown result type (might be due to invalid IL or missing references)
        //IL_0366: Unknown result type (might be due to invalid IL or missing references)
        //IL_0367: Unknown result type (might be due to invalid IL or missing references)
        //IL_036c: Unknown result type (might be due to invalid IL or missing references)
        //IL_036f: Unknown result type (might be due to invalid IL or missing references)
        //IL_0374: Unknown result type (might be due to invalid IL or missing references)
        //IL_038b: Unknown result type (might be due to invalid IL or missing references)
        //IL_0390: Unknown result type (might be due to invalid IL or missing references)
        //IL_0394: Unknown result type (might be due to invalid IL or missing references)
        //IL_0399: Unknown result type (might be due to invalid IL or missing references)
        //IL_039b: Unknown result type (might be due to invalid IL or missing references)
        //IL_039d: Unknown result type (might be due to invalid IL or missing references)
        //IL_03a2: Unknown result type (might be due to invalid IL or missing references)
        //IL_03a6: Unknown result type (might be due to invalid IL or missing references)
        //IL_03ab: Unknown result type (might be due to invalid IL or missing references)
        //IL_03b0: Unknown result type (might be due to invalid IL or missing references)
        //IL_03b5: Unknown result type (might be due to invalid IL or missing references)
        //IL_042d: Unknown result type (might be due to invalid IL or missing references)
        //IL_057c: Unknown result type (might be due to invalid IL or missing references)
        //IL_0581: Unknown result type (might be due to invalid IL or missing references)
        //IL_0583: Unknown result type (might be due to invalid IL or missing references)
        //IL_0585: Unknown result type (might be due to invalid IL or missing references)
        //IL_058a: Unknown result type (might be due to invalid IL or missing references)
        //IL_058c: Unknown result type (might be due to invalid IL or missing references)
        //IL_058e: Unknown result type (might be due to invalid IL or missing references)
        //IL_0590: Unknown result type (might be due to invalid IL or missing references)
        //IL_0595: Unknown result type (might be due to invalid IL or missing references)
        //IL_0599: Unknown result type (might be due to invalid IL or missing references)
        //IL_059b: Unknown result type (might be due to invalid IL or missing references)
        //IL_059d: Unknown result type (might be due to invalid IL or missing references)
        //IL_05a2: Unknown result type (might be due to invalid IL or missing references)
        //IL_05a6: Unknown result type (might be due to invalid IL or missing references)
        //IL_05b2: Unknown result type (might be due to invalid IL or missing references)
        //IL_05b7: Unknown result type (might be due to invalid IL or missing references)
        //IL_05b9: Unknown result type (might be due to invalid IL or missing references)
        //IL_05be: Unknown result type (might be due to invalid IL or missing references)
        //IL_05c5: Unknown result type (might be due to invalid IL or missing references)
        //IL_05c7: Unknown result type (might be due to invalid IL or missing references)
        //IL_05ce: Unknown result type (might be due to invalid IL or missing references)
        //IL_05d0: Unknown result type (might be due to invalid IL or missing references)
        //IL_06c9: Unknown result type (might be due to invalid IL or missing references)
        //IL_06cb: Unknown result type (might be due to invalid IL or missing references)
        //IL_06cd: Unknown result type (might be due to invalid IL or missing references)
        //IL_06d2: Unknown result type (might be due to invalid IL or missing references)
        //IL_06d4: Unknown result type (might be due to invalid IL or missing references)
        //IL_06d6: Unknown result type (might be due to invalid IL or missing references)
        //IL_06dd: Unknown result type (might be due to invalid IL or missing references)
        //IL_0727: Unknown result type (might be due to invalid IL or missing references)
        //IL_0729: Unknown result type (might be due to invalid IL or missing references)
        //IL_072e: Unknown result type (might be due to invalid IL or missing references)
        //IL_0804: Unknown result type (might be due to invalid IL or missing references)
        //IL_0805: Unknown result type (might be due to invalid IL or missing references)
        //IL_0807: Unknown result type (might be due to invalid IL or missing references)
        //IL_080c: Unknown result type (might be due to invalid IL or missing references)
        //IL_0ab1: Unknown result type (might be due to invalid IL or missing references)
        Self self = MonoBehaviourSingleton <StageObjectManager> .I.self;

        if (MonoBehaviourSingleton <StageObjectManager> .I.boss != null)
        {
            parameter = MonoBehaviourSingleton <InGameSettingsManager> .I.targetMarker;
        }
        else
        {
            parameter = MonoBehaviourSingleton <InGameSettingsManager> .I.targetMarkerLesserEnemies;
        }
        if (changeLockFlag)
        {
            changeLockTime -= Time.get_deltaTime();
            if (changeLockTime <= 0f)
            {
                changeLockTime = 0f;
                changeLockFlag = false;
                isTargetLock   = !isTargetLock;
            }
        }
        bool    flag = false;
        Vector3 val  = self._position;

        if (self.isArrowAimLesserMode)
        {
            if (self.isArrowAimEnd)
            {
                flag = true;
            }
            else
            {
                parameter = MonoBehaviourSingleton <InGameSettingsManager> .I.targetMarkerArrowAimLesser;
                val      += self.arrowAimLesserCursorPos;
            }
        }
        float num  = parameter.targetDistance;
        float num2 = parameter.showTargetDistance;

        if (self.isLongAttackMode)
        {
            num  = parameter.targetDistanceArrow;
            num2 = parameter.showTargetDistanceArrow;
        }
        TargetPoint targetingPoint = self.targetingPoint;

        self.targetingPointList.Clear();
        self.targetPointWithSpWeakList.Clear();
        int i = 0;

        for (int count = MonoBehaviourSingleton <StageObjectManager> .I.enemyList.Count; i < count; i++)
        {
            Enemy enemy = MonoBehaviourSingleton <StageObjectManager> .I.EnemyList[i];
            if (enemy.HasValidTargetPoint())
            {
                for (int j = 0; j < enemy.targetPoints.Length; j++)
                {
                    RegisterTargetInfo(enemy.targetPoints[j], enemy);
                }
            }
            List <IBulletObservable> bulletObservableList = enemy.GetBulletObservableList();
            if (bulletObservableList != null)
            {
                for (int k = 0; k < bulletObservableList.Count; k++)
                {
                    AnimEventShot animEventShot = bulletObservableList[k] as AnimEventShot;
                    if (!(animEventShot == null) && !(animEventShot.targetPoint == null))
                    {
                        RegisterTargetInfo(animEventShot.targetPoint, null);
                    }
                }
            }
        }
        for (int l = 0; l < MonoBehaviourSingleton <InGameManager> .I.dropItemList.Count; l++)
        {
            FieldDropObject fieldDropObject = MonoBehaviourSingleton <InGameManager> .I.dropItemList[l];
            if (fieldDropObject.targetPoint != null && fieldDropObject.get_gameObject().get_activeInHierarchy())
            {
                RegisterTargetInfo(fieldDropObject.targetPoint, null);
            }
        }
        int count2 = MonoBehaviourSingleton <StageObjectManager> .I.playerList.Count;

        for (int m = 0; m < count2; m++)
        {
            Player player = MonoBehaviourSingleton <StageObjectManager> .I.playerList[m] as Player;
            if (!(player == null) && !player.isDead)
            {
                TargetPoint restraintTargetPoint = player.RestraintTargetPoint;
                if (restraintTargetPoint != null)
                {
                    RegisterTargetInfo(restraintTargetPoint, null);
                }
            }
        }
        if (numTargetInfo <= 0)
        {
            Clear();
            self.SetActionTarget(null, true);
        }
        else
        {
            float       num3         = parameter.showAngle * 0.0174532924f;
            float       num4         = num * num;
            float       num5         = num2 * num2;
            float       num6         = parameter.targetAngle * 0.0174532924f;
            TargetPoint targetPoint  = null;
            float       num7         = 3.40282347E+38f;
            TargetPoint targetPoint2 = null;
            float       num8         = 3.40282347E+38f;
            TargetPoint targetPoint3 = null;
            float       num9         = 3.40282347E+38f;
            Vector2     val2         = val.ToVector2XZ();
            Vector2     forwardXZ    = self.forwardXZ;
            forwardXZ.Normalize();
            Transform  cameraTransform = MonoBehaviourSingleton <InGameCameraManager> .I.cameraTransform;
            Quaternion rotation        = cameraTransform.get_rotation();
            Vector3    position        = cameraTransform.get_position();
            Vector2    val3            = position.ToVector2XZ();
            Vector3    val4            = Vector2.op_Implicit(cameraTransform.get_forward().ToVector2XZ());
            val4.Normalize();
            bool isAutoMode = self.isAutoMode;
            for (int n = 0; n < numTargetInfo; n++)
            {
                Enemy             enemy2       = targetInfoList[n].enemy;
                TargetPoint       targetPoint4 = targetInfoList[n].targetPoint;
                TargetPoint.Param param        = targetPoint4.param;
                param.isShowRange    = false;
                param.isTargetEnable = false;
                param.weakState      = Enemy.WEAK_STATE.NONE;
                param.weakSubParam   = -1;
                if (targetPoint4.get_enabled() && targetPoint4.get_gameObject().get_activeInHierarchy())
                {
                    if (self.isArrowAimBossMode)
                    {
                        if (!self.CheckAttackModeAndSpType(Player.ATTACK_MODE.ARROW, SP_ATTACK_TYPE.SOUL) && !targetPoint4.isAimEnable)
                        {
                            continue;
                        }
                    }
                    else if (!targetPoint4.isTargetEnable)
                    {
                        continue;
                    }
                    if (enemy2 != null && targetPoint4.regionID >= 0 && targetPoint4.regionID < enemy2.regionWorks.Length)
                    {
                        EnemyRegionWork enemyRegionWork = enemy2.regionWorks[targetPoint4.regionID];
                        if (!enemyRegionWork.enabled)
                        {
                            continue;
                        }
                        if (!self.isArrowAimBossMode || Enemy.IsWeakStateDisplaySign(enemyRegionWork.weakState))
                        {
                            param.weakState        = enemyRegionWork.weakState;
                            param.weakSubParam     = enemyRegionWork.weakSubParam;
                            param.validElementType = enemyRegionWork.validElementType;
                            if (Enemy.IsWeakStateCheckAlreadyHit(param.weakState) && enemyRegionWork.weakAttackIDs.Contains(self.id))
                            {
                                param.weakState = Enemy.WEAK_STATE.NONE;
                            }
                        }
                        param.aimMarkerScale = MonoBehaviourSingleton <InGameSettingsManager> .I.enemy.aimMarkerBaseRate * enemy2.enemyTableData.aimMarkerRate * targetPoint4.aimMarkerPointRate;
                    }
                    param.isTargetEnable = true;
                    Vector3           targetPoint5 = targetPoint4.GetTargetPoint();
                    Vector2           val5         = targetPoint5.ToVector2XZ();
                    Vector2           val6         = val5 - val2;
                    TargetPoint.Param param2       = param;
                    Vector3           val7         = position - targetPoint5;
                    param2.markerPos = val7.get_normalized() * targetPoint4.scaledMarkerZShift + targetPoint5;
                    param.markerRot  = rotation;
                    param.targetPos  = targetPoint5;
                    bool flag2 = false;
                    if (param.weakState != 0 && param.weakSubParam != 0)
                    {
                        flag2 = true;
                    }
                    float sqrMagnitude = val6.get_sqrMagnitude();
                    param.isShowRange     = (sqrMagnitude < num5 || flag2);
                    param.vecSqrMagnitude = sqrMagnitude;
                    if (!isTargetDisable)
                    {
                        if (isAutoMode && !(targetPoint4.owner is Player))
                        {
                            if (targetPoint3 == null)
                            {
                                targetPoint3 = targetPoint4;
                                num9         = sqrMagnitude;
                            }
                            else if (targetPoint4.owner == null)
                            {
                                if (targetPoint3.owner == null)
                                {
                                    if (sqrMagnitude < num9)
                                    {
                                        targetPoint3 = targetPoint4;
                                        num9         = sqrMagnitude;
                                    }
                                }
                                else
                                {
                                    targetPoint3 = targetPoint4;
                                    num9         = sqrMagnitude;
                                }
                            }
                            else if (sqrMagnitude < num9)
                            {
                                targetPoint3 = targetPoint4;
                                num9         = sqrMagnitude;
                            }
                        }
                        if (flag2 || !(sqrMagnitude > num4))
                        {
                            Vector2 val8  = val5 - val3;
                            float   num10 = Mathf.Acos(Vector2.Dot(Vector2.op_Implicit(val4), val8.get_normalized()));
                            if (!(num10 > num3))
                            {
                                bool flag3 = false;
                                if (parameter.enableCameraCulling && !flag)
                                {
                                    float   cameraCullingMargin = parameter.cameraCullingMargin;
                                    Vector3 val9 = MonoBehaviourSingleton <InGameCameraManager> .I.WorldToViewportPoint(targetPoint5);

                                    if (val9.x < 0f - cameraCullingMargin || val9.x > 1f + cameraCullingMargin || val9.y < 0f - cameraCullingMargin || val9.y > 1f + cameraCullingMargin || val9.z < 0f)
                                    {
                                        flag3 = true;
                                    }
                                }
                                if (!flag3)
                                {
                                    if (Enemy.IsWeakStateSpAttack(param.weakState) && param.weakSubParam == (int)self.attackMode)
                                    {
                                        self.targetPointWithSpWeakList.Add(targetPoint4);
                                    }
                                    if (Enemy.IsWeakStateDisplaySign(param.weakState))
                                    {
                                        float num11 = Mathf.Sqrt(sqrMagnitude) - parameter.weakMarginDistance;
                                        sqrMagnitude = num11 * num11;
                                        num10        = 0f;
                                    }
                                    Vector3 val10 = val - targetPoint5;
                                    sqrMagnitude  = val10.get_magnitude();
                                    sqrMagnitude += targetPoint4.weight;
                                    if (targetPoint5.y >= 0f && targetPoint5.y < self.GetIgnoreTargetHeight())
                                    {
                                        if (targetPoint2 == null || sqrMagnitude < num8)
                                        {
                                            targetPoint2 = targetPoint4;
                                            num8         = sqrMagnitude;
                                        }
                                        if (num10 <= num6 && (targetPoint == null || sqrMagnitude < num7))
                                        {
                                            targetPoint = targetPoint4;
                                            num7        = sqrMagnitude;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            if (targetPoint == null && targetPoint2 != null)
            {
                targetPoint = targetPoint2;
            }
            if (isAutoMode)
            {
                AutoSelfController autoSelfController = self.controller as AutoSelfController;
                autoSelfController.actionTargetPoint = targetPoint3;
            }
            if (self.isArrowAimBossMode)
            {
                self.targetAimAfeterPoint = targetPoint;
                MakeTargetPointListForArrowAimBossMode(self.targetingPointList);
            }
            else
            {
                TargetPoint targetPoint6 = DecideFinalTargetPoint(targetPoint, targetingPoint, self.attackMode);
                if (targetPoint6 != null)
                {
                    self.targetingPointList.Add(targetPoint6);
                    self.SetActionTarget(targetPoint6.owner, true);
                    if (isAutoMode)
                    {
                        AutoSelfController autoSelfController2 = self.controller as AutoSelfController;
                        if (targetPoint6 != null)
                        {
                            if (targetPoint6.owner == null)
                            {
                                autoSelfController2.actionTargetPoint = targetPoint6;
                            }
                            else if (targetPoint3.owner == null)
                            {
                                targetPoint6 = (autoSelfController2.actionTargetPoint = DecideFinalTargetPoint(targetPoint3, targetPoint6, self.attackMode));
                                self.targetingPointList.Add(targetPoint6);
                                self.SetActionTarget(targetPoint6.owner, true);
                            }
                            else
                            {
                                autoSelfController2.actionTargetPoint = targetPoint6;
                            }
                        }
                        else
                        {
                            autoSelfController2.actionTargetPoint = targetPoint3;
                        }
                    }
                }
                else
                {
                    self.SetActionTarget(null, true);
                }
            }
            bool         flag4        = false;
            TargetMarker targetMarker = null;
            markersTemp.Clear();
            markersTemp.AddRange(markers);
            paramList.Clear();
            int num12  = 0;
            int count3 = paramListPool.Count;
            for (int num13 = 0; num13 < numTargetInfo; num13++)
            {
                Enemy       enemy3       = targetInfoList[num13].enemy;
                TargetPoint targetPoint7 = targetInfoList[num13].targetPoint;
                if (targetPoint7 != targetPoint)
                {
                    targetPoint7.param.targetSelectCounter -= Time.get_deltaTime();
                    if (targetPoint7.param.targetSelectCounter < 0f)
                    {
                        targetPoint7.param.targetSelectCounter = 0f;
                    }
                }
                if (targetPoint7.get_enabled() && targetPoint7.get_gameObject().get_activeInHierarchy() && showMarker)
                {
                    Enemy.WEAK_STATE weakState = targetPoint7.param.weakState;
                    bool             flag5     = false;
                    if (self.CheckAttackMode(Player.ATTACK_MODE.ARROW) && (self.isArrowAimBossMode || (self.isArrowAimLesserMode && !self.isArrowAimEnd)))
                    {
                        flag5 = true;
                    }
                    bool flag6 = false;
                    if (Enemy.IsWeakStateSpAttack(weakState) && targetPoint7.param.weakSubParam == (int)self.attackMode)
                    {
                        flag6 = true;
                    }
                    bool  playSign    = false;
                    float markerScale = 1f;
                    if (enemy3 != null && targetPoint7.regionID >= 0 && targetPoint7.regionID < enemy3.regionWorks.Length)
                    {
                        if (flag5 && !flag6)
                        {
                            markerScale = targetPoint7.param.aimMarkerScale;
                        }
                        else
                        {
                            playSign = (weakState != targetPoint7.param.prevWeakState && weakState != Enemy.WEAK_STATE.NONE);
                        }
                        if (!flag4)
                        {
                            targetPoint7.param.prevWeakState = weakState;
                        }
                    }
                    bool flag7 = self.targetingPointList.Contains(targetPoint7) || fieldMultiLockDic.ContainsKey(targetPoint7);
                    bool flag8 = (parameter.enableNormalMarker || self.isArrowAimBossMode || targetPoint7.IsForceDisplay) && !self.isJumpAction;
                    if ((flag7 && flag8) || weakState != 0)
                    {
                        TargetMarker.UpdateParam updateParam = null;
                        if (num12 >= count3)
                        {
                            updateParam = new TargetMarker.UpdateParam();
                            paramListPool.Add(updateParam);
                        }
                        else
                        {
                            updateParam = paramListPool[num12];
                        }
                        updateParam.targetPoint      = targetPoint7;
                        updateParam.targeting        = flag7;
                        updateParam.isLock           = isTargetLock;
                        updateParam.weakState        = weakState;
                        updateParam.weakSubParam     = targetPoint7.param.weakSubParam;
                        updateParam.playSign         = playSign;
                        updateParam.spAttackType     = self.spAttackType;
                        updateParam.isAimArrow       = flag5;
                        updateParam.isAimMode        = (flag5 && !flag6);
                        updateParam.isAimChargeMax   = (self.GetChargingRate() >= 1f);
                        updateParam.markerScale      = markerScale;
                        updateParam.validElementType = targetPoint7.param.validElementType;
                        if (self.isArrowAimLesserMode)
                        {
                            updateParam.isMultiLockMax = self.isMultiLockMax();
                        }
                        targetMarker = null;
                        for (int num14 = 0; num14 < markersTemp.Count; num14++)
                        {
                            if (markersTemp[num14].point == updateParam.targetPoint)
                            {
                                targetMarker = markersTemp[num14];
                                markersTemp.RemoveAt(num14);
                                break;
                            }
                        }
                        if (targetMarker == null)
                        {
                            paramList.Add(updateParam);
                        }
                        else if (!flag4)
                        {
                            flag4 = targetMarker.UpdateMarker(updateParam);
                            if (self.isArrowAimLesserMode && self.spAttackType == SP_ATTACK_TYPE.SOUL && targetMarker.point == self.targetingPoint)
                            {
                                MultiLockMarker multiLockMarker = null;
                                if (fieldMultiLockDic.ContainsKey(targetPoint7))
                                {
                                    multiLockMarker = fieldMultiLockDic[targetPoint7];
                                }
                                else
                                {
                                    multiLockMarker = targetMarker.GetMultiLock();
                                    fieldMultiLockDic.Add(targetPoint7, multiLockMarker);
                                }
                                self.CheckMultiLock(multiLockMarker);
                            }
                        }
                        num12++;
                    }
                }
            }
            int num15 = 0;
            for (int count4 = paramList.Count; num15 < count4; num15++)
            {
                targetMarker = null;
                if (markersTemp.Count > 0)
                {
                    targetMarker = markersTemp[0];
                    markersTemp.RemoveAt(0);
                }
                else
                {
                    targetMarker = new TargetMarker(base._transform);
                    markers.Add(targetMarker);
                }
                if (!flag4)
                {
                    targetMarker.UpdateMarker(paramList[num15]);
                }
            }
            if (markersTemp.Count > 0)
            {
                for (int num16 = 0; num16 < markersTemp.Count; num16++)
                {
                    markersTemp[num16].UnableMarker();
                }
            }
            for (int num17 = 0; num17 < numTargetInfo; num17++)
            {
                targetInfoList[num17].enemy       = null;
                targetInfoList[num17].targetPoint = null;
            }
            numTargetInfo = 0;
            if (MonoBehaviourSingleton <StageObjectManager> .I.boss != null && updateShadowSealingFlag)
            {
                MonoBehaviourSingleton <StageObjectManager> .I.boss.CountShadowSealingTarget();

                updateShadowSealingFlag = false;
                MonoBehaviourSingleton <StageObjectManager> .I.boss.CheckCounterRegion();
            }
        }
    }
    private void OnSpecialAttack()
    {
        //IL_0073: Unknown result type (might be due to invalid IL or missing references)
        //IL_00a2: Unknown result type (might be due to invalid IL or missing references)
        //IL_0203: Unknown result type (might be due to invalid IL or missing references)
        //IL_020e: Unknown result type (might be due to invalid IL or missing references)
        //IL_0213: Unknown result type (might be due to invalid IL or missing references)
        //IL_0218: Unknown result type (might be due to invalid IL or missing references)
        //IL_022b: Unknown result type (might be due to invalid IL or missing references)
        //IL_023c: Unknown result type (might be due to invalid IL or missing references)
        //IL_0247: Unknown result type (might be due to invalid IL or missing references)
        //IL_024c: Unknown result type (might be due to invalid IL or missing references)
        //IL_0251: Unknown result type (might be due to invalid IL or missing references)
        //IL_0264: Unknown result type (might be due to invalid IL or missing references)
        //IL_0290: Unknown result type (might be due to invalid IL or missing references)
        //IL_029b: Unknown result type (might be due to invalid IL or missing references)
        //IL_02a0: Unknown result type (might be due to invalid IL or missing references)
        //IL_02a5: Unknown result type (might be due to invalid IL or missing references)
        //IL_02ba: Unknown result type (might be due to invalid IL or missing references)
        if (!base.self.isActSpecialAction && isChangeableSpecialAction)
        {
            base.self.SetEnableTap(true);
            if (base.self.CheckAttackModeAndSpType(Player.ATTACK_MODE.PAIR_SWORDS, SP_ATTACK_TYPE.HEAT))
            {
                base.self.ActSpecialAction(true, true);
            }
            else if (base.self.CheckAttackModeAndSpType(Player.ATTACK_MODE.PAIR_SWORDS, SP_ATTACK_TYPE.SOUL))
            {
                base.self.ActSpecialAction(true, true);
                this.StartCoroutine(ActSpecialPairSoulSword());
            }
            else if (base.self.CheckAttackModeAndSpType(Player.ATTACK_MODE.ONE_HAND_SWORD, SP_ATTACK_TYPE.SOUL))
            {
                if (!isActSpecialOneSwordSoul)
                {
                    this.StartCoroutine(ActSpecialOneSwordSoul());
                }
            }
            else
            {
                base.self.ActSpecialAction(true, true);
                if (base.self.CheckAttackMode(Player.ATTACK_MODE.SPEAR))
                {
                    switch (base.self.spAttackType)
                    {
                    case SP_ATTACK_TYPE.HEAT:
                        base.brain.weaponCtrl.SetChargeRate(1f);
                        break;

                    case SP_ATTACK_TYPE.NONE:
                        base.brain.weaponCtrl.SetChargeRate(0.5f);
                        break;

                    default:
                        base.brain.weaponCtrl.SetChargeRate(1f);
                        break;
                    }
                }
                else if (base.self.CheckAttackModeAndSpType(Player.ATTACK_MODE.ONE_HAND_SWORD, SP_ATTACK_TYPE.SOUL))
                {
                    base.brain.weaponCtrl.SetChargeRate(0.5f);
                }
                else
                {
                    base.brain.weaponCtrl.SetChargeRate(1f);
                }
            }
        }
        else if (base.self.enableInputCharge && base.self.GetChargingRate() >= base.brain.weaponCtrl.chargeRate)
        {
            if (base.self.CheckAttackMode(Player.ATTACK_MODE.SPEAR))
            {
                switch (base.self.spAttackType)
                {
                case SP_ATTACK_TYPE.HEAT:
                    if (base.self.targetingPoint != null)
                    {
                        Vector3 spearCursorPos = base.self.targetingPoint.GetTargetPoint() - base.self._position;
                        spearCursorPos.y = 0f;
                        base.self.SetSpearCursorPos(spearCursorPos);
                    }
                    else
                    {
                        Vector3 spearCursorPos2 = actionTargetPoint.GetTargetPoint() - base.self._position;
                        spearCursorPos2.y = 0f;
                        base.self.SetSpearCursorPos(spearCursorPos2);
                    }
                    break;

                case SP_ATTACK_TYPE.NONE:
                    if (base.self.targetingPoint != null)
                    {
                        Vector3 val = base.self.targetingPoint.GetTargetPoint() - base.self._position;
                        val.y = 0f;
                        base.self.SetLerpRotation(val.get_normalized());
                    }
                    break;
                }
            }
            base.self.SetEnableTap(false);
        }
    }