Exemple #1
0
        public void SetMpGaugeParam(EUnitSide Side, int CurrentMp, int MaxMp, int YosokuDamageMp = 0, int YosokuHealMp = 0)
        {
            if (UnityEngine.Object.op_Equality((UnityEngine.Object) this.MpGauge, (UnityEngine.Object)null))
            {
                return;
            }
            int PlusValue = 0;

            if (0 < YosokuDamageMp)
            {
                PlusValue = -YosokuDamageMp;
            }
            else if (0 < YosokuHealMp)
            {
                PlusValue = YosokuHealMp;
            }
            if (Side == EUnitSide.Player)
            {
                this.SetGaugeParamInternal(ref this.mMpGaugeParam, TargetPlate.EGaugeType.PLAYER_MP, CurrentMp, MaxMp, PlusValue);
            }
            else
            {
                this.SetGaugeParamInternal(ref this.mMpGaugeParam, TargetPlate.EGaugeType.PLAYER_MP, CurrentMp, MaxMp, PlusValue);
            }
        }
Exemple #2
0
        public void SetHpGaugeParam(EUnitSide Side, int CurrentHp, int MaxHp, int YosokuDamageHp = 0, int YosokuHealHp = 0, bool is_max_damage = false)
        {
            if (UnityEngine.Object.op_Equality((UnityEngine.Object) this.HpGauge, (UnityEngine.Object)null))
            {
                return;
            }
            int PlusValue = YosokuHealHp - YosokuDamageHp;

            if (is_max_damage && PlusValue != 0)
            {
                int num = MaxHp;
                MaxHp = Math.Max(num + PlusValue, 0);
                this.mHpGaugeParam.MaxValue = num == 0 ? 1f : Mathf.Clamp01((float)MaxHp / (float)num);
                CurrentHp = Mathf.Clamp(CurrentHp, 0, MaxHp);
                PlusValue = 0;
            }
            else
            {
                this.mHpGaugeParam.MaxValue = 1f;
            }
            if (Side == EUnitSide.Player)
            {
                this.SetGaugeParamInternal(ref this.mHpGaugeParam, TargetPlate.EGaugeType.PLAYER_HP, CurrentHp, MaxHp, PlusValue);
            }
            else
            {
                this.SetGaugeParamInternal(ref this.mHpGaugeParam, TargetPlate.EGaugeType.ENEMY_HP, CurrentHp, MaxHp, PlusValue);
            }
        }
Exemple #3
0
        private bool checkTarget(Unit target, bool is_eff = false)
        {
            bool         flag         = false;
            ESkillTarget eskillTarget = this.mTrickParam.Target;

            if (is_eff)
            {
                eskillTarget = this.mTrickParam.EffTarget;
            }
            switch (eskillTarget)
            {
            case ESkillTarget.Self:
                if (this.mCreateUnit != null)
                {
                    flag = target == this.mCreateUnit;
                    break;
                }
                break;

            case ESkillTarget.SelfSide:
                EUnitSide eunitSide1 = EUnitSide.Enemy;
                if (this.mCreateUnit != null)
                {
                    eunitSide1 = this.mCreateUnit.Side;
                }
                flag = target.Side == eunitSide1;
                break;

            case ESkillTarget.EnemySide:
                EUnitSide eunitSide2 = EUnitSide.Enemy;
                if (this.mCreateUnit != null)
                {
                    eunitSide2 = this.mCreateUnit.Side;
                }
                flag = target.Side != eunitSide2;
                break;

            case ESkillTarget.UnitAll:
                flag = true;
                break;

            case ESkillTarget.NotSelf:
                if (this.mCreateUnit != null)
                {
                    flag = target != this.mCreateUnit;
                    break;
                }
                break;
            }
            return(flag);
        }
Exemple #4
0
            public bool IsVaild(Unit unit)
            {
                bool      flag      = false;
                EUnitSide eunitSide = EUnitSide.Enemy;

                if (this.data.CreateUnit != null)
                {
                    eunitSide = this.data.CreateUnit.Side;
                }
                switch (this.param.Target)
                {
                case ESkillTarget.Self:
                    if (this.data.CreateUnit == unit)
                    {
                        flag = true;
                        break;
                    }
                    break;

                case ESkillTarget.SelfSide:
                    if (eunitSide == unit.Side)
                    {
                        flag = true;
                        break;
                    }
                    break;

                case ESkillTarget.EnemySide:
                    if (eunitSide != unit.Side)
                    {
                        flag = true;
                        break;
                    }
                    break;

                case ESkillTarget.UnitAll:
                    flag = true;
                    break;

                case ESkillTarget.NotSelf:
                    if (this.data.CreateUnit != unit)
                    {
                        flag = true;
                        break;
                    }
                    break;
                }
                return(flag && (this.data.CondEffect == null || this.data.CondEffect.CheckEnableCondTarget(unit)));
            }
Exemple #5
0
        public void SetHpGaugeParam(EUnitSide Side, int CurrentHp, int MaxHp, int YosokuDamageHp = 0, int YosokuHealHp = 0)
        {
            if (UnityEngine.Object.op_Equality((UnityEngine.Object) this.HpGauge, (UnityEngine.Object)null))
            {
                return;
            }
            int PlusValue = YosokuHealHp - YosokuDamageHp;

            if (Side == EUnitSide.Player)
            {
                this.SetGaugeParamInternal(ref this.mHpGaugeParam, TargetPlate.EGaugeType.PLAYER_HP, CurrentHp, MaxHp, PlusValue);
            }
            else
            {
                this.SetGaugeParamInternal(ref this.mHpGaugeParam, TargetPlate.EGaugeType.ENEMY_HP, CurrentHp, MaxHp, PlusValue);
            }
        }
Exemple #6
0
            public bool IsVisual(Unit unit)
            {
                switch (this.param.VisualType)
                {
                case eTrickVisualType.PLAYER:
                    EUnitSide eunitSide = EUnitSide.Enemy;
                    if (this.data.CreateUnit != null)
                    {
                        eunitSide = this.data.CreateUnit.Side;
                    }
                    if (eunitSide == unit.Side)
                    {
                        return(true);
                    }
                    break;

                case eTrickVisualType.ALL:
                    return(true);
                }
                return(false);
            }
Exemple #7
0
 // Token: 0x06000BDB RID: 3035 RVA: 0x0011429C File Offset: 0x0011249C
 public void UpdateLineTag(int LineTableID)
 {
     if (DataManager.CompareStr(DataManager.MapDataController.MapLineTable[LineTableID].playerName, DataManager.Instance.RoleAttr.Name) == 0)
     {
         DataManager.Instance.RoleAlliance.Tag.ClearString();
         DataManager.Instance.RoleAlliance.Tag.Append(DataManager.MapDataController.MapLineTable[LineTableID].allianceTag);
         if (DataManager.Instance.RoleAlliance.Tag.Length == 0)
         {
             DataManager.Instance.RoleAlliance.Id        = 0u;
             DataManager.Instance.RoleAlliance.KingdomID = 0;
         }
         LineNode lineValue = this.mapLineController.getLineValue(DataManager.MapDataController.MapLineTable[LineTableID].lineObject);
         lineValue.NodeName.updateName(DataManager.MapDataController.MapLineTable[LineTableID].playerName, DataManager.MapDataController.MapLineTable[LineTableID].allianceTag, 0, null);
     }
     else
     {
         bool       bEase    = true;
         ELineColor color    = ELineColor.BLUE;
         EUnitSide  unitSide = EUnitSide.BLUE;
         DataManager.checkLineColorID(LineTableID, out color, out unitSide, out bEase);
         this.mapLineController.setLineColor(DataManager.MapDataController.MapLineTable[LineTableID].lineObject, color, unitSide, DataManager.MapDataController.MapLineTable[LineTableID].playerName, DataManager.MapDataController.MapLineTable[LineTableID].allianceTag, bEase);
     }
 }
Exemple #8
0
 public void ResetHpGauge(EUnitSide Side, int CurrentHp, int MaxHp)
 {
     this.SetHpGaugeParam(Side, CurrentHp, MaxHp, 0, 0, false);
     this.UpdateGauge(this.mHpGaugeParam, this.HpGauge, this.HpMaxGauge);
 }
    // Token: 0x06000ABA RID: 2746 RVA: 0x000E6004 File Offset: 0x000E4204
    public LineNode createLine(MapLine mapLine, Vector3 from, Vector3 to, ELineColor color, EUnitSide unitSide, bool bEase = true, bool NeedRenderLine = true, EMonsterFace MonsterFace = EMonsterFace.LEFT, byte bLoop = 0)
    {
        CHAOS chaos = GameManager.ActiveGameplay as CHAOS;

        if (chaos == null || chaos.realmController == null || chaos.realmController.mapLineController == null)
        {
            return(null);
        }
        if (chaos.realmController.mapLineController.m_Bundle == null)
        {
            chaos.realmController.mapLineController.m_Bundle = AssetManager.GetAssetBundle("Role/FlowLinePrefab", 0L);
        }
        uint num   = mapLine.during;
        long begin = (long)mapLine.begin;

        if (num <= 0u)
        {
            return(null);
        }
        int num2 = (int)(begin + (long)((ulong)num) - DataManager.Instance.ServerTime);

        if (num2 <= 0)
        {
            return(null);
        }
        byte side = (byte)unitSide;

        from   = this.m_Parent.transform.InverseTransformPoint(from);
        from.z = 0f;
        to     = this.m_Parent.transform.InverseTransformPoint(to);
        to.z   = 0f;
        long num3 = DataManager.Instance.ServerTime - begin;

        num3 = Math.Max(num3, 0L);
        num3 = Math.Min(num3, (long)((ulong)num));
        float           num4            = (float)num3;
        float           num5            = Vector3.Distance(from, to);
        float           num6            = num5 / num * 2f;
        EMarchEventType emarchEventType = EMarchEventType.EMET_Camp;
        byte            b = mapLine.lineFlag;

        if (b >= 23)
        {
            if (num4 >= 5f)
            {
                emarchEventType = (EMarchEventType)b;
                b = (byte)this.RetreatToReturn((EMarchEventType)b);
            }
            else if (b == 24 || b == 25)
            {
                side = ((color != ELineColor.DEEPBLUE) ? 0 : 1);
            }
        }
        LineNode   lineNode = null;
        GameObject gameObject;

        if (this.workingLine != null)
        {
            gameObject = this.workingLine.gameObject;
            gameObject.SetActive(true);
            this.setupLineNode(lineNode, num5, bEase, (byte)color);
        }
        else
        {
            if (this.m_Bundle == null)
            {
                this.m_Bundle = chaos.realmController.mapLineController.m_Bundle;
            }
            gameObject = (UnityEngine.Object.Instantiate(this.m_Bundle.mainAsset) as GameObject);
            gameObject.transform.parent = this.m_Parent.transform;
            MeshFilter   component  = gameObject.GetComponent <MeshFilter>();
            Mesh         mesh       = new Mesh();
            MeshRenderer component2 = gameObject.GetComponent <MeshRenderer>();
            component2.material.renderQueue = 3001;
            component.mesh         = mesh;
            lineNode               = new LineNode();
            lineNode.gameObject    = gameObject;
            lineNode.lineTransform = gameObject.transform;
            GameObject gameObject2 = new GameObject("movingNode");
            gameObject2.transform.parent = gameObject.transform;
            gameObject2.transform.Rotate(0f, 90f, 0f);
            lineNode.movingNode = gameObject2.transform;
            lineNode.meshFilter = component;
            lineNode.renderer   = component2;
            this.setupLineNode(lineNode, num5, bEase, (byte)color);
            this.workingLine = lineNode;
        }
        float num7 = num4;

        if (b >= 23 || emarchEventType >= EMarchEventType.EMET_AttackRetreat)
        {
            num  -= 5u;
            num7 -= 5f;
            num7  = ((num7 >= 0f) ? num7 : 0f);
        }
        lineNode.lineTableID    = (int)mapLine.lineID;
        lineNode.timeOffset     = num7;
        lineNode.inverseMaxTime = ((num <= 0u) ? 0f : (1f / num));
        float x = num5 * (lineNode.timeOffset * lineNode.inverseMaxTime) - num5 * 0.5f;

        lineNode.movingNode.localPosition = new Vector3(x, 0f, 0f);
        lineNode.speedRate     = num6 / 1.75f;
        lineNode.unitSpeedRate = 1f;
        lineNode.bFocus        = bLoop;
        Vector3 from2 = to - from;
        float   num8  = Vector3.Angle(from2, Vector3.right);

        if (from2.y < 0f)
        {
            num8 = 360f - num8;
        }
        gameObject.transform.rotation      = Quaternion.identity;
        gameObject.transform.localPosition = from + (to - from) * 0.5f;
        gameObject.transform.rotation      = Quaternion.AngleAxis(num8, Vector3.forward);
        gameObject.transform.localScale    = Vector3.one;
        this.recalculateSpeed(lineNode, mapLine, true);
        if (lineNode != null && lineNode.movingNode != null)
        {
            if (lineNode.sheetUnit == null)
            {
                lineNode.sheetUnit = new SheetAnimationUnitGroupNewbie();
            }
            SheetAnimationUnitGroupNewbie sheetAnimationUnitGroupNewbie = lineNode.sheetUnit as SheetAnimationUnitGroupNewbie;
            sheetAnimationUnitGroupNewbie.transform.parent        = null;
            sheetAnimationUnitGroupNewbie.transform.rotation      = Quaternion.identity;
            sheetAnimationUnitGroupNewbie.transform.parent        = lineNode.movingNode;
            sheetAnimationUnitGroupNewbie.transform.localPosition = Vector3.zero;
            byte b2 = 0;
            if (b == 27 && MonsterFace == EMonsterFace.RIGHT)
            {
                b2 |= 1;
            }
            sheetAnimationUnitGroupNewbie.setupAnimUnit(side, b, num8, b2);
            sheetAnimationUnitGroupNewbie.resetScale();
            lineNode.flag        = b;
            lineNode.angle       = num8;
            lineNode.side        = side;
            lineNode.MonsterFace = MonsterFace;
            if (b >= 23)
            {
                float timer = 5f - num4;
                lineNode.renderer.enabled = false;
                lineNode.action           = ELineAction.ACTION_BEFORE;
                lineNode.timer            = timer;
            }
        }
        if (lineNode != null && !NeedRenderLine)
        {
            if (lineNode.action == ELineAction.ACTION_BEFORE)
            {
                lineNode.action = ELineAction.ACTION_BEFORE_WITHOUT_LINE;
            }
            lineNode.renderer.enabled = false;
        }
        return(lineNode);
    }
Exemple #10
0
    // Token: 0x06000BD6 RID: 3030 RVA: 0x00113A3C File Offset: 0x00111C3C
    public void AddLine(int LineTableID, bool show = true)
    {
        if (DataManager.MapDataController.MapLineTable[LineTableID].lineObject != null)
        {
            return;
        }
        EUnitSide? eunitSide  = null;
        ELineColor?elineColor = null;
        ushort     num        = 0;

        if (!GameConstants.IsPetSkillLine(LineTableID) && !GameConstants.IsSoccerRunningLine(LineTableID))
        {
            for (int i = 0; i < this.mapLineController.FakeRetreatList.Count; i++)
            {
                int        num2      = GameConstants.PointCodeToMapID(DataManager.MapDataController.MapLineTable[LineTableID].start.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].start.pointID);
                POINT_KIND pointKind = (POINT_KIND)DataManager.MapDataController.LayoutMapInfo[num2].pointKind;
                PointCode  start     = DataManager.MapDataController.MapLineTable[LineTableID].start;
                if (start.pointID == this.mapLineController.FakeRetreatList[i].point.pointID && start.zoneID == this.mapLineController.FakeRetreatList[i].point.zoneID)
                {
                    if (this.mapLineController.FakeRetreatList[i].flag != 0)
                    {
                        eunitSide  = new EUnitSide?(this.mapLineController.FakeRetreatList[i].unitSide);
                        elineColor = new ELineColor?(this.mapLineController.FakeRetreatList[i].lineColor);
                    }
                    num = this.mapLineController.FakeRetreatList[i].emoji;
                    this.mapLineController.FakeRetreatList.RemoveAt(i);
                    break;
                }
                if (this.mapLineController.FakeRetreatList[i].lineFlag == EMarchEventType.EMET_RallyAttack && DataManager.MapDataController.MapLineTable[LineTableID].lineFlag == 17)
                {
                    int        num3       = GameConstants.PointCodeToMapID(this.mapLineController.FakeRetreatList[i].point.zoneID, this.mapLineController.FakeRetreatList[i].point.pointID);
                    POINT_KIND pointKind2 = (POINT_KIND)DataManager.MapDataController.LayoutMapInfo[num3].pointKind;
                    if (pointKind2 == POINT_KIND.PK_YOLK && DataManager.MapDataController.MapLineTable[LineTableID].end.pointID == this.mapLineController.FakeRetreatList[i].point2.pointID && DataManager.MapDataController.MapLineTable[LineTableID].end.zoneID == this.mapLineController.FakeRetreatList[i].point2.zoneID)
                    {
                        this.mapLineController.FakeRetreatList.RemoveAt(i);
                        break;
                    }
                }
            }
        }
        bool       bEase    = true;
        ELineColor color    = ELineColor.BLUE;
        EUnitSide  unitSide = EUnitSide.BLUE;

        DataManager.checkLineColorID(LineTableID, out color, out unitSide, out bEase);
        if (eunitSide != null)
        {
            unitSide = eunitSide.Value;
            color    = elineColor.Value;
        }
        float   d      = DataManager.MapDataController.zoomSize * this.CanvasrectranScale;
        Vector2 vector = this.mapTileController.getTilePosition(DataManager.MapDataController.MapLineTable[LineTableID].start.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].start.pointID) * d;
        Vector3 from   = new Vector3(vector.x, vector.y, 0f);

        vector = this.mapTileController.getTilePosition(DataManager.MapDataController.MapLineTable[LineTableID].end.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].end.pointID) * d;
        int   layoutMapInfoID = 0;
        sbyte b = 0;

        if (!GameConstants.IsPetSkillLine(LineTableID) && !GameConstants.IsSoccerRunningLine(LineTableID) && DataManager.MapDataController.MapLineTable[LineTableID].lineFlag == 27)
        {
            if (NetworkManager.ServerTime - DataManager.MapDataController.MapLineTable[LineTableID].begin < 5.0)
            {
                layoutMapInfoID = GameConstants.PointCodeToMapID(DataManager.MapDataController.MapLineTable[LineTableID].start.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].start.pointID);
                b = this.mapTileController.getNPCDir((uint)layoutMapInfoID);
            }
            else
            {
                layoutMapInfoID = GameConstants.PointCodeToMapID(DataManager.MapDataController.MapLineTable[LineTableID].start.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].start.pointID);
                this.mapTileController.UpdateMapNPCHurt((uint)layoutMapInfoID, false);
                layoutMapInfoID = 0;
            }
        }
        byte b2 = 0;

        if (this.IsPowerSoccer(LineTableID))
        {
            b2 |= 1;
        }
        LineNode lineNode = this.mapLineController.createLine(LineTableID, from, new Vector3(vector.x, vector.y, 0f), color, unitSide, bEase, show, ((int)b >= 0) ? EMonsterFace.LEFT : EMonsterFace.RIGHT, b2);

        DataManager.MapDataController.MapLineTable[LineTableID].lineObject = ((lineNode != null) ? lineNode.gameObject : null);
        if (lineNode != null && (int)b != 0)
        {
            this.mapTileController.setNPCLinenode((uint)layoutMapInfoID, lineNode);
        }
        if (num != 0 && lineNode.action != ELineAction.NORMAL)
        {
            MapLine mapLine = DataManager.MapDataController.MapLineTable[LineTableID];
            mapLine.baseFlag |= 1;
            DataManager.MapDataController.MapLineTable[LineTableID].emojiID = num;
            this.UpdateLineEmoji(LineTableID);
        }
        this.CheckShowMapWeaponLine(LineTableID);
    }
Exemple #11
0
 // Token: 0x06000BD5 RID: 3029 RVA: 0x001131B0 File Offset: 0x001113B0
 public void DelLine(int LineTableID, byte Send = 1, byte bDelAll = 0)
 {
     if (this.mapLineController != null && DataManager.MapDataController.MapLineTable[LineTableID].lineObject != null)
     {
         bool forceRemove = false;
         if (!GameConstants.IsPetSkillLine(LineTableID) && !GameConstants.IsSoccerRunningLine(LineTableID))
         {
             if (DataManager.MapDataController.MapLineTable[LineTableID].lineFlag == 27 && NetworkManager.ServerTime - DataManager.MapDataController.MapLineTable[LineTableID].begin < 5.0)
             {
                 this.mapTileController.UpdateMapNPCFighterLeave((uint)GameConstants.PointCodeToMapID(DataManager.MapDataController.MapLineTable[LineTableID].start.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].start.pointID), LineTableID);
             }
             else if (DataManager.MapDataController.MapLineTable[LineTableID].lineFlag == 12)
             {
                 this.mapLineController.LastRallyName.ClearString();
                 this.mapLineController.LastRallyName.Append(DataManager.MapDataController.MapLineTable[LineTableID].playerName);
             }
             if (Send != 255 && (DataManager.MapDataController.MapLineTable[LineTableID].lineFlag == 5 || DataManager.MapDataController.MapLineTable[LineTableID].lineFlag == 6 || DataManager.MapDataController.MapLineTable[LineTableID].lineFlag == 7 || DataManager.MapDataController.MapLineTable[LineTableID].lineFlag == 12 || DataManager.MapDataController.MapLineTable[LineTableID].lineFlag == 9))
             {
                 bool       flag      = true;
                 int        num       = GameConstants.PointCodeToMapID(DataManager.MapDataController.MapLineTable[LineTableID].end.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].end.pointID);
                 POINT_KIND pointKind = (POINT_KIND)DataManager.MapDataController.LayoutMapInfo[num].pointKind;
                 if (pointKind == POINT_KIND.PK_NONE)
                 {
                     flag = false;
                 }
                 else if (DataManager.MapDataController.IsResources((uint)num))
                 {
                     int tableID = (int)DataManager.MapDataController.LayoutMapInfo[num].tableID;
                     if (DataManager.CompareStr(DataManager.MapDataController.ResourcesPointTable[tableID].playerName, string.Empty) == 0)
                     {
                         flag = false;
                     }
                 }
                 else if (pointKind == POINT_KIND.PK_CITY)
                 {
                     int tableID2 = (int)DataManager.MapDataController.LayoutMapInfo[num].tableID;
                     if (DataManager.CompareStr(DataManager.MapDataController.PlayerPointTable[tableID2].allianceTag, DataManager.MapDataController.MapLineTable[LineTableID].allianceTag) == 0)
                     {
                         flag = false;
                     }
                 }
                 if (flag)
                 {
                     FakeRetreat item = new FakeRetreat(0);
                     item.point    = DataManager.MapDataController.MapLineTable[LineTableID].end;
                     item.point2   = DataManager.MapDataController.MapLineTable[LineTableID].start;
                     item.lineFlag = (EMarchEventType)DataManager.MapDataController.MapLineTable[LineTableID].lineFlag;
                     bool       flag2     = true;
                     ELineColor lineColor = ELineColor.BLUE;
                     EUnitSide  unitSide  = EUnitSide.BLUE;
                     DataManager.checkLineColorID(LineTableID, out lineColor, out unitSide, out flag2);
                     item.unitSide  = unitSide;
                     item.lineColor = lineColor;
                     item.playerName.ClearString();
                     item.playerName.Append(DataManager.MapDataController.MapLineTable[LineTableID].playerName);
                     item.allianceTag.ClearString();
                     item.allianceTag.Append(DataManager.MapDataController.MapLineTable[LineTableID].allianceTag);
                     item.emoji = DataManager.MapDataController.MapLineTable[LineTableID].emojiID;
                     this.mapLineController.FakeRetreatList.Add(item);
                 }
             }
         }
         else if (GameConstants.IsPetSkillLine(LineTableID))
         {
             long num2   = (long)(DataManager.MapDataController.MapLineTable[LineTableID].begin + (ulong)DataManager.MapDataController.MapLineTable[LineTableID].during);
             uint during = DataManager.MapDataController.MapLineTable[LineTableID].during;
             if (during <= 2u || Math.Abs(num2 - DataManager.Instance.ServerTime) <= 1L)
             {
                 Door door = GUIManager.Instance.FindMenu(EGUIWindow.Door) as Door;
                 if (door == null || door.m_eMode == EUIOriginMode.Show)
                 {
                     byte           lineFlag    = DataManager.MapDataController.MapLineTable[LineTableID].lineFlag;
                     MapDamageEffTb recordByKey = PetManager.Instance.MapDamageEffTable.GetRecordByKey((ushort)lineFlag);
                     if (recordByKey.ID == (ushort)lineFlag)
                     {
                         float   d       = DataManager.MapDataController.zoomSize * this.CanvasrectranScale;
                         Vector2 vector  = this.mapTileController.getTilePosition(DataManager.MapDataController.MapLineTable[LineTableID].end.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].end.pointID) * d;
                         Vector3 value   = new Vector3(vector.x, vector.y, 0f);
                         CString cstring = StringManager.Instance.SpawnString(30);
                         if (recordByKey.SoundPakNO != 0)
                         {
                             cstring.ClearString();
                             cstring.StringToFormat("Role/");
                             cstring.IntToFormat((long)recordByKey.SoundPakNO, 3, false);
                             cstring.AppendFormat("{0}{1}");
                             if (AssetManager.GetAssetBundleDownload(cstring, AssetPath.Role, AssetType.HeroSFX, recordByKey.SoundPakNO, false))
                             {
                                 AudioManager.Instance.PlaySFX(recordByKey.HitSound, 0f, PitchKind.NoPitch, null, new Vector3?(value));
                             }
                         }
                         else
                         {
                             AudioManager.Instance.PlaySFX(recordByKey.HitSound, 0f, PitchKind.NoPitch, null, new Vector3?(value));
                         }
                         if (recordByKey.ParticlePakNO != 0)
                         {
                             cstring.ClearString();
                             cstring.StringToFormat("Particle/Monster_Effects_");
                             cstring.IntToFormat((long)recordByKey.ParticlePakNO, 3, false);
                             cstring.AppendFormat("{0}{1}");
                             if (AssetManager.GetAssetBundleDownload(cstring, AssetPath.Particle, AssetType.Effects, recordByKey.ParticlePakNO, false))
                             {
                                 DataManager.MapDataController.MapWeaponDefense(DataManager.MapDataController.MapLineTable[LineTableID].end.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].end.pointID, recordByKey.HitParticle, (float)recordByKey.HitParticleDuring * 0.001f);
                             }
                         }
                         else
                         {
                             DataManager.MapDataController.MapWeaponDefense(DataManager.MapDataController.MapLineTable[LineTableID].end.zoneID, DataManager.MapDataController.MapLineTable[LineTableID].end.pointID, recordByKey.HitParticle, (float)recordByKey.HitParticleDuring * 0.001f);
                         }
                         StringManager.Instance.DeSpawnString(cstring);
                     }
                 }
             }
         }
         else
         {
             forceRemove = true;
             if (bDelAll == 0)
             {
                 MapLine mapLine = DataManager.MapDataController.MapLineTable[LineTableID];
                 if ((mapLine.lineFlag & 56) == 56)
                 {
                     if (mapLine.start.zoneID != mapLine.end.zoneID || mapLine.start.pointID != mapLine.end.pointID)
                     {
                         Vector3 b       = this.PointCodeToWorldPosition(mapLine.start.zoneID, mapLine.start.pointID);
                         Vector3 vector2 = this.PointCodeToWorldPosition(mapLine.end.zoneID, mapLine.end.pointID);
                         this.mapLineController.addSoccerFakeLine(vector2, new Vector3?(vector2 - b), 0);
                     }
                 }
                 else
                 {
                     long num3    = (long)(mapLine.begin + (ulong)mapLine.during);
                     uint during2 = mapLine.during;
                     long num4    = Math.Abs(num3 - DataManager.Instance.ServerTime);
                     if (during2 <= 2u || num4 <= 1L)
                     {
                         this.mapLineController.CheckTouchDownPosEffect(mapLine.end.zoneID, mapLine.end.pointID);
                     }
                     LineNode nodeByGameObject = this.mapLineController.GetNodeByGameObject(DataManager.MapDataController.MapLineTable[LineTableID].lineObject, false);
                     this.mapLineController.PlaySoccerArrive(nodeByGameObject);
                 }
             }
         }
         Send = ((Send != byte.MaxValue) ? Send : 1);
         if (bDelAll != 0)
         {
             forceRemove = true;
         }
         this.mapTileController.CheckDelFocusGroup(LineTableID, Send);
         this.mapLineController.CheckRemoveLine(DataManager.MapDataController.MapLineTable[LineTableID].lineObject, forceRemove);
     }
 }