package fight3D;

import framework.RWT.RWTContainer;
import framework.RWT.RWTFrame3D;
import framework.RWT.RWTVirtualController;
import framework.audio.BGM3D;
import framework.audio.Sound3D;
import framework.gameMain.AbstractGameState;


public class FightState extends AbstractGameState {
	private Game game;
	private Fight fight;
	private Sound3D fightBGM = BGM3D.registerBGM("data\\fight.wav");
    
	FightState(Game game){
		this.game = game;
	}
	
	@Override
	public void init(RWTFrame3D frame) {	    
	    super.init(frame);
		((FightContainer)container).build(game, 2);

	    int [] characterList = new int[2];
		int stageNumber=0;
	    stageNumber = game.getStage();
		characterList = game.getCharacter();
		
		// 対戦処理を初期化(getSimpleUniverse()は、コンテナのbuild()の後でないとnullを返すので注意）
	    fight = new Fight(((FightContainer)container).getCanvas(), 
	    		stageNumber, 
	    		characterList, 
	    		(FightListener)getRWTCanvas3D());
	    System.gc();
	    // BGM
	    BGM3D.playBGM(fightBGM);
	}

	@Override
	public RWTContainer createContainer() {
		// TODO Auto-generated method stub
		return new FightContainer();
	}

	@Override
	public boolean useTimer() {
		return true;
	}

	@Override
	public void update(RWTVirtualController controller, long interval) {
		fight.progress(controller, interval);
	}
}
