// 攻擊目標
		public override void Attack( ICharacter theTarget)
		{
			// 發射特效
			m_Weapon.ShowShootEffect();
			int AtkPlusValue = 0;

			// 依目前武器決定攻擊方式
			switch(m_Weapon.GetWeaponType())
			{
			case ENUM_Weapon.Gun:

				// 顯示武器特效及音效
				m_Weapon.ShowBulletEffect(theTarget.GetPosition(),0.03f,0.2f);
				m_Weapon.ShowSoundEffect("GunShot");

				// 有機率增加額外加乘
				AtkPlusValue = GetAtkPlusValue(5,20);

				break;
			case ENUM_Weapon.Rifle:
				// 顯示武器特效及音效
				m_Weapon.ShowBulletEffect(theTarget.GetPosition(),0.5f,0.2f);
				m_Weapon.ShowSoundEffect("RifleShot");

				// 有機率增加額外加乘
				AtkPlusValue = GetAtkPlusValue(10,25);

				break;
			case ENUM_Weapon.Rocket:
				// 顯示武器特效及音效
				m_Weapon.ShowBulletEffect(theTarget.GetPosition(),0.8f,0.5f);
				m_Weapon.ShowSoundEffect("RocketShot");

				// 有機率增加額外加乘
				AtkPlusValue = GetAtkPlusValue(15,30);

				break;
			}

			// 設定額外加乘值
			m_Weapon.SetAtkPlusValue( AtkPlusValue );

			// 攻擊
			m_Weapon.Fire( theTarget );
		}
		// 被攻擊
		public abstract void UnderAttack( ICharacter theTarget); 
		// 被攻擊
		public override void UnderAttack( ICharacter Target)
		{
		}
		// 攻擊目標
		public void Fire( ICharacter theTarget )
		{
		}
		// 攻擊目標
		public override void Attack( ICharacter theTarget)
		{
			// 發射特效
			m_Weapon.ShowShootEffect();
						
			// 依目前武器決定攻擊方式
			switch(m_Weapon.GetWeaponType())
			{
			case ENUM_Weapon.Gun:				
				// 顯示武器特效及音效
				m_Weapon.ShowBulletEffect(theTarget.GetPosition(),0.03f,0.2f);
				m_Weapon.ShowSoundEffect("GunShot");										
				break;
			case ENUM_Weapon.Rifle:
				// 顯示武器特效及音效
				m_Weapon.ShowBulletEffect(theTarget.GetPosition(),0.5f,0.2f);
				m_Weapon.ShowSoundEffect("RifleShot");
				break;
			case ENUM_Weapon.Rocket:
				// 顯示武器特效及音效
				m_Weapon.ShowBulletEffect(theTarget.GetPosition(),0.8f,0.5f);
				m_Weapon.ShowSoundEffect("RocketShot");							
				break;
			}
			
			// 攻擊
			m_Weapon.Fire( theTarget );
		}