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); }
public void AddBulletInfo(BULLET_INFO kBulletInfo) { if (this.m_kBulletInfoList.ContainsKey(kBulletInfo.NAME)) { return; } this.m_kBulletInfoList.Add(kBulletInfo.NAME, kBulletInfo); }
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); }
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); }