// @Override
		public virtual void fireEvent(Battle battle)
		{
			BattleTeam _team = battle.BattleArmy.getActor(sideIndex);
			if (_team == null)
			{
				// TODO: loggers.error
				return;
			}
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final boolean _rightInfo = _team.handleBattleFightInfo(targetIndex, heroIndex);
			bool _rightInfo = _team.handleBattleFightInfo(targetIndex, heroIndex);

			if (!_rightInfo)
			{
				Logger.Log("#ProduceFighterIndexAction.fireEvent.error: " + toInfoString());
				return;
			}

			battle.updateBattleState(BattleState.RUNTIME);
			_team.beforeAttack(new BeforeAttackEvent());
			BattleLogicHelper.refreshState(battle.BattleArmy);
			battle.StoreHandler.handleStartAttack(heroIndex.Length);
			battle.onAction();
		}