Пример #1
0
 public void Deserialize(JSON_BreakObjParam json)
 {
     if (json == null)
     {
         return;
     }
     this.mIname     = json.iname;
     this.mName      = json.name;
     this.mExpr      = json.expr;
     this.mUnitId    = json.unit_id;
     this.mClashType = (eMapBreakClashType)json.clash_type;
     this.mAiType    = (eMapBreakAIType)json.ai_type;
     this.mSideType  = (eMapBreakSideType)json.side_type;
     this.mRayType   = (eMapBreakRayType)json.ray_type;
     this.mIsUI      = json.is_ui != 0;
     this.mRestHps   = (int[])null;
     if (!string.IsNullOrEmpty(json.rest_hps))
     {
         string[] strArray = json.rest_hps.Split(',');
         if (strArray != null && strArray.Length != 0)
         {
             this.mRestHps = new int[strArray.Length];
             for (int index = 0; index < strArray.Length; ++index)
             {
                 int result = 0;
                 int.TryParse(strArray[index], out result);
                 this.mRestHps[index] = result;
             }
         }
     }
     this.mAliveClock = json.clock;
     this.mAppearDir  = (EUnitDirection)json.appear_dir;
 }
Пример #2
0
    public static IntVector2 ToOffset(this EUnitDirection direction)
    {
        switch (direction)
        {
        case EUnitDirection.PositiveX:
            return(new IntVector2(1, 0));

        case EUnitDirection.PositiveY:
            return(new IntVector2(0, 1));

        case EUnitDirection.NegativeY:
            return(new IntVector2(0, -1));

        default:
            return(new IntVector2(-1, 0));
        }
    }
Пример #3
0
    public static Quaternion ToRotation(this EUnitDirection direction)
    {
        switch (direction)
        {
        case EUnitDirection.PositiveX:
            return(Quaternion.LookRotation(Vector3.get_right()));

        case EUnitDirection.PositiveY:
            return(Quaternion.LookRotation(Vector3.get_forward()));

        case EUnitDirection.NegativeX:
            return(Quaternion.LookRotation(Vector3.get_left()));

        case EUnitDirection.NegativeY:
            return(Quaternion.LookRotation(Vector3.get_back()));

        default:
            return(Quaternion.get_identity());
        }
    }
Пример #4
0
    public static Vector3 ToVector(this EUnitDirection direction)
    {
        switch (direction)
        {
        case EUnitDirection.PositiveX:
            return(Vector3.get_right());

        case EUnitDirection.PositiveY:
            return(Vector3.get_forward());

        case EUnitDirection.NegativeX:
            return(Vector3.get_left());

        case EUnitDirection.NegativeY:
            return(Vector3.get_back());

        default:
            return(Vector3.get_left());
        }
    }
Пример #5
0
        private bool actionKnockBack(Unit target, RandXorshift rand, LogMapTrick.TargetInfo log_mt_ti)
        {
            if (rand == null || (int)this.mTrickParam.KnockBackRate == 0 || (int)this.mTrickParam.KnockBackVal == 0)
            {
                return(false);
            }
            SceneBattle instance = SceneBattle.Instance;

            if (!UnityEngine.Object.op_Implicit((UnityEngine.Object)instance))
            {
                return(false);
            }
            BattleCore battle = instance.Battle;

            if (battle == null)
            {
                return(false);
            }
            if (!this.checkKnockBack(target, rand))
            {
                return(true);
            }
            EUnitDirection dir           = this.reverseDirection[(int)target.Direction];
            Grid           gridKnockBack = battle.GetGridKnockBack(target, dir, (int)this.mTrickParam.KnockBackVal, (SkillData)null, 0, 0);

            if (gridKnockBack == null)
            {
                return(true);
            }
            if (log_mt_ti != null)
            {
                log_mt_ti.IsEffective   = true;
                log_mt_ti.KnockBackGrid = gridKnockBack;
            }
            target.x = gridKnockBack.x;
            target.y = gridKnockBack.y;
            return(true);
        }