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); }