Esempio n. 1
0
    public bool CreateBullet(string szBullet_KIND, NkBattleChar pkSourceChar, NkBattleChar pkTargetchar, float fStartTime)
    {
        if (szBullet_KIND == null)
        {
            return(false);
        }
        BULLET_INFO bulletInfo = this.GetBulletInfo(szBullet_KIND);

        if (bulletInfo == null)
        {
            if (TsPlatform.IsEditor)
            {
                Debug.LogError("Bullet Create Fail " + pkSourceChar.Get3DName() + " Kind : " + szBullet_KIND);
            }
            else
            {
                TsLog.Assert(false, "Bullet Create Fail " + pkSourceChar.Get3DName() + " Kind : " + szBullet_KIND, new object[0]);
            }
            return(false);
        }
        NkBulletUnit nkBulletUnit = new NkBulletUnit();

        if (nkBulletUnit.CreateBulletUnit(bulletInfo, pkSourceChar, pkTargetchar, fStartTime))
        {
            uint key = this._GetNextRegistNum();
            this.m_kBulletList.Add(key, nkBulletUnit);
            return(true);
        }
        return(false);
    }
Esempio n. 2
0
 public void AddBulletInfo(BULLET_INFO kBulletInfo)
 {
     if (this.m_kBulletInfoList.ContainsKey(kBulletInfo.NAME))
     {
         return;
     }
     this.m_kBulletInfoList.Add(kBulletInfo.NAME, kBulletInfo);
 }
Esempio n. 3
0
    public override bool ParseDataFromNDT(TsDataReader dr)
    {
        foreach (TsDataReader.Row data in dr)
        {
            BULLET_INFO bULLET_INFO = new BULLET_INFO();
            bULLET_INFO.SetData(data);
            bULLET_INFO.MOVE_TYPE = NrTSingleton <NkBulletManager> .Instance.ConvertBulletMoveType(bULLET_INFO.szMOVE_TYPE);

            bULLET_INFO.HIT_TYPE = NrTSingleton <NkBulletManager> .Instance.ConvertBulletHitType(bULLET_INFO.szHIT_TYPE);

            NrTSingleton <NkBulletManager> .Instance.AddBulletInfo(bULLET_INFO);
        }
        return(true);
    }
Esempio n. 4
0
    public bool CreateBulletUnit(BULLET_INFO BulletInfo, NkBattleChar pkSourceChar, NkBattleChar pkTargetchar, float fStartTime)
    {
        if (BulletInfo == null)
        {
            return(false);
        }
        if (pkSourceChar == null)
        {
            return(false);
        }
        if (pkTargetchar == null)
        {
            return(false);
        }
        this.m_BulletInfo = BulletInfo;
        this.m_SourceChar = pkSourceChar;
        this.m_TargetChar = pkTargetchar;
        this.m_fStartTime = fStartTime;
        if (this.m_SourceChar.CastedTarget.m_bDeadReaservation)
        {
            Debug.Log("Already Dead Char Request Bullet");
        }
        Vector3 vector  = Vector3.zero;
        Vector3 vector2 = Vector3.zero;
        Vector3 vector3 = Vector3.zero;

        if (this.m_BulletInfo.MOVE_TYPE == eBULLET_MOVE_TYPE.eBULLET_MOVE_TYPE_PASS)
        {
            BATTLE_POS_GRID battleGrid  = Battle.BATTLE.GetBattleGrid(pkSourceChar.Ally, pkSourceChar.GetStartPosIndex());
            BATTLE_POS_GRID battleGrid2 = Battle.BATTLE.GetBattleGrid(pkTargetchar.Ally, pkTargetchar.GetStartPosIndex());
            if (battleGrid == null)
            {
                return(false);
            }
            vector          = battleGrid.GetCenterBack();
            this.m_PosStart = vector;
            vector.y        = 0f;
            if (battleGrid2 == null)
            {
                return(false);
            }
            vector3             = battleGrid2.GetCenterBack();
            this.m_BulletPosEnd = vector3;
            vector3.y           = 0f;
            vector2             = pkTargetchar.GetCenterPosition();
            this.m_HitPosEnd    = vector2;
            vector2.y           = 0f;
        }
        else
        {
            vector              = pkSourceChar.GetShotPosition();
            this.m_PosStart     = vector;
            vector.y            = 0f;
            vector3             = pkTargetchar.GetCenterPosition();
            this.m_BulletPosEnd = vector3;
            vector3.y           = 0f;
            vector2             = pkTargetchar.GetCenterPosition();
            this.m_HitPosEnd    = vector2;
            vector2.y           = 0f;
        }
        float num  = Vector3.Distance(vector, vector3);
        float num2 = Vector3.Distance(vector, vector2);

        if (this.m_BulletInfo.MOVE_TYPE == eBULLET_MOVE_TYPE.eBULLET_MOVE_TYPE_LINE || this.m_BulletInfo.MOVE_TYPE == eBULLET_MOVE_TYPE.eBULLET_MOVE_TYPE_CURVE || this.m_BulletInfo.MOVE_TYPE == eBULLET_MOVE_TYPE.eBULLET_MOVE_TYPE_PASS)
        {
            if (this.m_BulletInfo.SPEED > 0f)
            {
                this.m_fBulletEndTime = fStartTime + num / this.m_BulletInfo.SPEED;
                this.m_fHitEndTime    = fStartTime + num2 / this.m_BulletInfo.SPEED;
            }
            else
            {
                this.m_fBulletEndTime = fStartTime;
                this.m_fHitEndTime    = fStartTime;
            }
            if (this.m_BulletInfo.MOVE_TYPE == eBULLET_MOVE_TYPE.eBULLET_MOVE_TYPE_CURVE)
            {
                this.m_BulletPosEnd = this.m_TargetChar.CastedTarget.GetCharPos();
                this.m_HitPosEnd    = this.m_TargetChar.CastedTarget.GetCharPos();
                this.calculateInitialVelocity();
            }
        }
        else if (this.m_BulletInfo.MOVE_TYPE == eBULLET_MOVE_TYPE.eBULLET_MOVE_TYPE_NONE)
        {
            this.m_fBulletEndTime = fStartTime;
            this.m_fHitEndTime    = fStartTime;
        }
        this.m_nEffectIndex = NrTSingleton <NkEffectManager> .Instance.AddEffect(this.m_BulletInfo.EFFECT_KIND, this.m_PosStart);

        this.m_EffectUnit = NrTSingleton <NkEffectManager> .Instance.GetEffectUnit(this.m_nEffectIndex);

        if (this.m_EffectUnit != null)
        {
            this.m_EffectUnit.CastedTarget.LifeTime = float.PositiveInfinity;
        }
        return(true);
    }