package sample.game.builder;
import java.util.ArrayList;
import library.core.mainAI.RiverCrossingAI;
import library.core.model.CoreAnimation;
import library.core.model.CoreModel;
import library.core.object.CoreObjectFactory;
import library.core.system.CoreImageData;
import library.core.view.CoreView;
import sample.game.ai.Memory;
import sample.game.controller.GameController;
import sample.game.main.MainActivity;
import sample.game.manager.EndIsland;
import sample.game.manager.Island;
import sample.game.manager.LayoutManager;
import sample.game.manager.StartIsland;
import sample.game.model.AiChara;
import sample.game.model.BackToTitleButton;
import sample.game.model.BoatModel;
import sample.game.model.ButtonNextTurn;
import sample.game.model.CharaModel;
import sample.game.model.CharaModel.TARGET_TYPE;
import sample.game.model.CrossButton;
import sample.game.model.ExampleBox;
import sample.game.model.NumBox;
import sample.game.model.OnemorePlayButton;
import sample.game.model.OppositeIcon;
public class GameBuilder {
private CoreObjectFactory objectFactory;
private StartIsland island;
private EndIsland endIsland;
private BoatModel boat;
private ButtonNextTurn buttonNextTurn;
private LayoutManager layoutManager;
private static final float CHARA_ANIM_SPEED=0.2f;
private GameController gameController;
public GameBuilder(MainActivity activity,CoreObjectFactory objectFactory,int boatSize){
gameController=new GameController(true);
this.objectFactory=objectFactory;
this.layoutManager=new LayoutManager(true, boatSize);
createEndIsLand();
createStartIsLand();
createBoat(boatSize);
createUI();
gameController.init(activity, island, endIsland, buttonNextTurn, boat, layoutManager);
}
/**
* 再生成用
* @param activity
* @param gameScreen
* @param sIsland
* @param eIsland
* @param boat
* @param layoutManager
*/
public GameBuilder(MainActivity activity,CoreObjectFactory objectFactory,
StartIsland sIsland,EndIsland eIsland,BoatModel boat){
gameController=new GameController(false);
this.layoutManager=new LayoutManager(true, boat.getRideMaxMenberNum());
this.objectFactory=objectFactory;
this.layoutManager=new LayoutManager(sIsland.getNowTurn(),boat.getRideMaxMenberNum());
this.island=sIsland;
this.endIsland=eIsland;
//ボートを再生成
this.boat=boat;
this.reCreateBoat(boat);
this.createUI();
gameController.init(activity, island, endIsland, buttonNextTurn, boat, layoutManager);
}
public GameController build(boolean isUseAi,int ministerNum ,int wolfNum,int cabbageNum,int cattleNum){
addBackImage();
for(int i=0;i<ministerNum;i++){
addMaster();
}
for(int i=0;i<wolfNum;i++){
addWolf();
}
for(int i=0;i<cabbageNum;i++){
addCabbage();
}
for(int i=0;i<cattleNum;i++){
addCattle();
}
gameController.setUseAi(isUseAi);
if(isUseAi){
RiverCrossingAI.setCanTouch(false);
}
if(isUseAi){ //AIを使用する際の専用演出
this.addAiChara();
this.addAiUi();
}
//メモリーはAIでも使用するのでAIより先に初期化を行う
gameController.memoryInit();
//初期設定が終わった後でAIの設定
gameController.aiInit();
gameController.saveCharacterPosition();
gameController.checkInitProduction();
return gameController;
}
//前回の状況を再現する用のビルダー
public GameController reBuild(boolean isUseAi,Memory memory){
addBackImage();
Island is=island;
ArrayList<CharaModel> charas=is.getMinisters();
for(int i=0;i<charas.size();i++){
charas.get(i).setGameController(gameController);
layoutManager.addRight(charas.get(i),true);
objectFactory.create(charas.get(i), new CoreView(charas.get(i), 2));
gameController.addAllCharacter(charas.get(i));
}
charas=is.getWolfs();
for(int i=0;i<charas.size();i++){
charas.get(i).setGameController(gameController);
layoutManager.addRight(charas.get(i),true);
objectFactory.create(charas.get(i), new CoreView(charas.get(i), 2));
gameController.addAllCharacter(charas.get(i));
}
charas=is.getCabbages();
for(int i=0;i<charas.size();i++){
charas.get(i).setGameController(gameController);
layoutManager.addRight(charas.get(i),true);
objectFactory.create(charas.get(i), new CoreView(charas.get(i), 2));
gameController.addAllCharacter(charas.get(i));
}
charas=is.getCattles();
for(int i=0;i<charas.size();i++){
charas.get(i).setGameController(gameController);
layoutManager.addRight(charas.get(i),true);
objectFactory.create(charas.get(i), new CoreView(charas.get(i), 2));
gameController.addAllCharacter(charas.get(i));
}
is=endIsland;
charas=is.getMinisters();
for(int i=0;i<charas.size();i++){
charas.get(i).setGameController(gameController);
layoutManager.addLeft(charas.get(i),true);
objectFactory.create(charas.get(i), new CoreView(charas.get(i), 2));
gameController.addAllCharacter(charas.get(i));
}
charas=is.getWolfs();
for(int i=0;i<charas.size();i++){
charas.get(i).setGameController(gameController);
layoutManager.addLeft(charas.get(i),true);
objectFactory.create(charas.get(i), new CoreView(charas.get(i), 2));
gameController.addAllCharacter(charas.get(i));
}
charas=is.getCabbages();
for(int i=0;i<charas.size();i++){
charas.get(i).setGameController(gameController);
layoutManager.addLeft(charas.get(i),true);
objectFactory.create(charas.get(i), new CoreView(charas.get(i), 2));
gameController.addAllCharacter(charas.get(i));
}
charas=is.getCattles();
for(int i=0;i<charas.size();i++){
charas.get(i).setGameController(gameController);
layoutManager.addLeft(charas.get(i),true);
objectFactory.create(charas.get(i), new CoreView(charas.get(i), 2));
gameController.addAllCharacter(charas.get(i));
}
gameController.setUseAi(isUseAi);
gameController.memoryInit(memory);
gameController.aiInit(memory);
gameController.checkInitProduction();
return gameController;
}
/**
* 背景描画
*/
public void addBackImage(){
//x座標 0〜1280を移動 0が右
CoreModel background=new CoreModel(new CoreImageData("image/game/game.png"),0, 360,1280*2, 360*2);
//CoreModel background=new CoreModel(new CoreImageData("image/game/game2.jpg"),640, 360,1280, 360*2);
objectFactory.create(background, new CoreView(background, 0));
gameController.setBackScreen(background);
CoreModel gameOverWolf=new CoreModel(new CoreImageData("image/game/screen/miss1.png"),640, 360, 1280, 720);
gameOverWolf.setShowView(false);
objectFactory.create(gameOverWolf, new CoreView(gameOverWolf, 10));
gameController.setGameoverScreenTypeWolf(gameOverWolf);
CoreModel gameoverCabbage=new CoreModel(new CoreImageData("image/game/screen/miss2.png"),
640, 360, 1280, 720);
gameoverCabbage.setShowView(false);
objectFactory.create(gameoverCabbage, new CoreView(gameoverCabbage, 10));
gameController.setGameoverScreenTypeCabbage(gameoverCabbage);
CoreModel gameoverAi=new CoreModel(new CoreImageData("image/game/screen/miss3.png"),
640, 360, 1280, 720);
gameoverAi.setShowView(false);
objectFactory.create(gameoverAi, new CoreView(gameoverAi, 10));
gameController.setGameoverScreenTypeAi(gameoverAi);
//フェイド用のマスク
CoreModel fadeMask=new CoreModel(new CoreImageData("image/game/screen/fadeMask.png"),
640, 360, 1280, 720);
fadeMask.setShowView(false);
fadeMask.setAlpha(0);
objectFactory.create(fadeMask, new CoreView(fadeMask, 20));
gameController.setFadeMask(fadeMask);
}
public void addAiChara(){
ArrayList<CoreAnimation> anims=new ArrayList<CoreAnimation>();
ArrayList<CoreImageData> anim1=new ArrayList<CoreImageData>();
anim1.add(new CoreImageData("image/game/chara/aiThink.png",0,0,256,256));
anim1.add(new CoreImageData("image/game/chara/aiThink.png",1,0,256,256));
anim1.add(new CoreImageData("image/game/chara/aiThink.png",2,0,256,256));
ArrayList<Integer> anim1Index=new ArrayList<Integer>();
anim1Index.add(1);
anim1Index.add(0);
anim1Index.add(1);
anim1Index.add(2);
anims.add(new CoreAnimation("aiThink", anim1,anim1Index, 0.4f, true));
anim1=new ArrayList<CoreImageData>();
anim1.add(new CoreImageData("image/game/chara/ai_miss.png"));
anim1Index=new ArrayList<Integer>();
anim1Index.add(0);
anims.add(new CoreAnimation("aiMiss", anim1, anim1Index, 0.4f, false));
anim1=new ArrayList<CoreImageData>();
anim1.add(new CoreImageData("image/game/chara/ai_success.png"));
anim1Index=new ArrayList<Integer>();
anim1Index.add(0);
anims.add(new CoreAnimation("aiMiss", anim1, anim1Index, 0.4f, false));
AiChara aiChara=new AiChara(anims, 0, 540, 620, 256, 256);
objectFactory.create(aiChara, new CoreView(aiChara, 8));
gameController.setAiChara(aiChara);
}
public void addAiUi(){
CoreModel returnBack=new CoreModel(new CoreImageData("image/game/ui/return1.png"),
640, 360, 1280, 720);
returnBack.setShowView(false);
objectFactory.create(returnBack, new CoreView(returnBack, 7));
gameController.setReturnBackScreen(returnBack);
CoreModel returnIcon=new CoreModel(new CoreImageData("image/game/ui/return2.png"),
640, 360, 200, 100);
returnIcon.setShowView(false);
objectFactory.create(returnIcon, new CoreView(returnIcon, 8));
gameController.setReturnIcon(returnIcon);
}
/**
* 牧師追加
*/
public void addMaster(){
ArrayList<CoreAnimation> anims=new ArrayList<CoreAnimation>();
ArrayList<CoreImageData> anim1=new ArrayList<CoreImageData>();
anim1.add(new CoreImageData("image/game/chara/minami_game1.png"));
ArrayList<Integer> anim1Index=new ArrayList<Integer>();
anim1Index.add(0);
anims.add(new CoreAnimation("minamiClear", anim1,anim1Index, 0.4f, false));
ArrayList<CoreImageData> anim2=new ArrayList<CoreImageData>();
anim2.add(new CoreImageData("image/game/chara/minamiGame.png",0,0,144,144));
anim2.add(new CoreImageData("image/game/chara/minamiGame.png",1,0,144,144));
anim2.add(new CoreImageData("image/game/chara/minamiGame.png",2,0,144,144));
ArrayList<Integer> anim2Index=new ArrayList<Integer>();
anim2Index.add(1);
anim2Index.add(0);
anim2Index.add(1);
anim2Index.add(2);
anims.add(new CoreAnimation("minamiLeft", anim2,anim2Index, CHARA_ANIM_SPEED, true));
ArrayList<CoreImageData> anim3=new ArrayList<CoreImageData>();
anim3.add(new CoreImageData("image/game/chara/minamiGameR.png",0,0,144,144));
anim3.add(new CoreImageData("image/game/chara/minamiGameR.png",1,0,144,144));
anim3.add(new CoreImageData("image/game/chara/minamiGameR.png",2,0,144,144));
ArrayList<Integer> anim3Index=new ArrayList<Integer>();
anim3Index.add(1);
anim3Index.add(0);
anim3Index.add(1);
anim3Index.add(2);
anims.add(new CoreAnimation("minamiRight", anim3,anim3Index, CHARA_ANIM_SPEED, true));
ArrayList<CoreImageData> anim4=new ArrayList<CoreImageData>();
anim4.add(new CoreImageData("image/game/chara/minami_clear.png"));
ArrayList<Integer> anim4Index=new ArrayList<Integer>();
anim4Index.add(0);
anims.add(new CoreAnimation("minamiClear", anim4,anim4Index, 0.4f, false));
CharaModel chara=new CharaModel(gameController, TARGET_TYPE.MINISTART,
anims, 0, 0, 0, 144, 144);
objectFactory.create(chara, new CoreView(chara, 3));
island.addCharacter(chara);
layoutManager.addRight(chara,true);
gameController.addAllCharacter(chara);
/*
CharaModel chara=new CharaModel(gameController, TARGET_TYPE.MINISTART,
new CoreImageData("image/konanC1.png"),1000, 100, 100,100);
this.objectFactory.create(chara,new CoreView(chara, 2));
island.addCharacter(chara);
layoutManager.addRight(chara);*/
}
/**
* オオカミ追加
*/
public void addWolf(){
ArrayList<CoreAnimation> anims=new ArrayList<CoreAnimation>();
ArrayList<CoreImageData> anim1=new ArrayList<CoreImageData>();
anim1.add(new CoreImageData("image/game/chara/snake_game1.png"));
ArrayList<Integer> anim1Index=new ArrayList<Integer>();
anim1Index.add(0);
anims.add(new CoreAnimation("snakeClear", anim1,anim1Index, 0.4f, false));
ArrayList<CoreImageData> anim2=new ArrayList<CoreImageData>();
anim2.add(new CoreImageData("image/game/chara/snakeGame.png",0,0,144,144));
anim2.add(new CoreImageData("image/game/chara/snakeGame.png",1,0,144,144));
ArrayList<Integer> anim2Index=new ArrayList<Integer>();
anim2Index.add(0);
anim2Index.add(1);
anims.add(new CoreAnimation("snakeLeft", anim2,anim2Index,CHARA_ANIM_SPEED, true));
ArrayList<CoreImageData> anim3=new ArrayList<CoreImageData>();
anim3.add(new CoreImageData("image/game/chara/snakeGameR.png",0,0,144,144));
anim3.add(new CoreImageData("image/game/chara/snakeGameR.png",1,0,144,144));
ArrayList<Integer> anim3Index=new ArrayList<Integer>();
anim3Index.add(0);
anim3Index.add(1);
anims.add(new CoreAnimation("snakeRight", anim3,anim3Index,CHARA_ANIM_SPEED, true));
ArrayList<CoreImageData> anim4=new ArrayList<CoreImageData>();
anim4.add(new CoreImageData("image/game/chara/snake_clear.png"));
ArrayList<Integer> anim4Index=new ArrayList<Integer>();
anim4Index.add(0);
anims.add(new CoreAnimation("snakeClear", anim4,anim4Index, 0.4f, false));
CharaModel chara=new CharaModel(gameController, TARGET_TYPE.WOLF,
anims, 0, 0, 0, 144, 144);
objectFactory.create(chara, new CoreView(chara, 3));
island.addCharacter(chara);
layoutManager.addRight(chara,true);
gameController.addAllCharacter(chara);
/* CharaModel chara=new CharaModel(gameController, TARGET_TYPE.WOLF,
new CoreImageData("image/wolf.jpg"), 1000,250, 100,100);
this.objectFactory.create(chara,new CoreView(chara, 2));
island.addCharacter(chara);
layoutManager.addRight(chara);*/
}
/**
* 牛追加
*/
public void addCattle(){
ArrayList<CoreAnimation> anims=new ArrayList<CoreAnimation>();
ArrayList<CoreImageData> anim1=new ArrayList<CoreImageData>();
anim1.add(new CoreImageData("image/game/chara/nanbou_game1.png"));
ArrayList<Integer> anim1Index=new ArrayList<Integer>();
anim1Index.add(0);
anims.add(new CoreAnimation("nanbouClear", anim1,anim1Index, 0.4f, false));
ArrayList<CoreImageData> anim2=new ArrayList<CoreImageData>();
anim2.add(new CoreImageData("image/game/chara/nanbouGame.png",0,0,144,144));
anim2.add(new CoreImageData("image/game/chara/nanbouGame.png",1,0,144,144));
anim2.add(new CoreImageData("image/game/chara/nanbouGame.png",2,0,144,144));
ArrayList<Integer> anim2Index=new ArrayList<Integer>();
anim2Index.add(1);
anim2Index.add(0);
anim2Index.add(1);
anim2Index.add(2);
anims.add(new CoreAnimation("nanbouLeft", anim2,anim2Index,CHARA_ANIM_SPEED, true));
ArrayList<CoreImageData> anim3=new ArrayList<CoreImageData>();
anim3.add(new CoreImageData("image/game/chara/nanbouGameR.png",0,0,144,144));
anim3.add(new CoreImageData("image/game/chara/nanbouGameR.png",1,0,144,144));
anim3.add(new CoreImageData("image/game/chara/nanbouGameR.png",2,0,144,144));
ArrayList<Integer> anim3Index=new ArrayList<Integer>();
anim3Index.add(1);
anim3Index.add(0);
anim3Index.add(1);
anim3Index.add(2);
anims.add(new CoreAnimation("nanbouRight", anim3,anim3Index,CHARA_ANIM_SPEED, true));
ArrayList<CoreImageData> anim4=new ArrayList<CoreImageData>();
anim4.add(new CoreImageData("image/game/chara/nanbou_clear.png"));
ArrayList<Integer> anim4Index=new ArrayList<Integer>();
anim4Index.add(0);
anims.add(new CoreAnimation("nanbouClear", anim4,anim4Index, 0.4f, false));
CharaModel chara=new CharaModel(gameController, TARGET_TYPE.CATTLE,
anims, 0, 0, 0, 144, 144);
objectFactory.create(chara, new CoreView(chara, 3));
island.addCharacter(chara);
layoutManager.addRight(chara,true);
gameController.addAllCharacter(chara);
/*
CharaModel chara=new CharaModel(gameController, TARGET_TYPE.CATTLE,
new CoreImageData("image/cattle.jpg"), 1000,400, 100,100);
this.objectFactory.create(chara,new CoreView(chara, 2));
island.addCharacter(chara);
layoutManager.addRight(chara);*/
}
/**
* キャベツ追加
*/
public void addCabbage(){
ArrayList<CoreAnimation> anims=new ArrayList<CoreAnimation>();
ArrayList<CoreImageData> anim1=new ArrayList<CoreImageData>();
anim1.add(new CoreImageData("image/game/chara/apple.png"));
ArrayList<Integer> anim1Index=new ArrayList<Integer>();
anim1Index.add(0);
anims.add(new CoreAnimation("apple", anim1,anim1Index, 0.4f, false));
CharaModel chara=new CharaModel(gameController, TARGET_TYPE.CABBAGE,
anims, 0, 0, 0, 96, 144);
objectFactory.create(chara, new CoreView(chara, 3));
island.addCharacter(chara);
layoutManager.addRight(chara,true);
gameController.addAllCharacter(chara);
/* CharaModel chara=new CharaModel(gameController, TARGET_TYPE.CABBAGE,
new CoreImageData("image/cabbage.jpg"),1000, 550, 100,100);
this.objectFactory.create(chara,new CoreView(chara, 2));
island.addCharacter(chara);
layoutManager.addRight(chara);*/
}
/**
* スタート区画の設定
*/
public void createStartIsLand(){
island=new StartIsland();
}
/***
* 終了区画の設定
*/
public void createEndIsLand(){
endIsland=new EndIsland();
}
/**
* ボート関連を作成
*/
private void createBoat(int boatSize){
//左右のアニメーションを追加
ArrayList<CoreImageData> animImagesL=new ArrayList<CoreImageData>();
animImagesL.add(new CoreImageData("image/game/ui/boat_l.png",0,0,272,130));
animImagesL.add(new CoreImageData("image/game/ui/boat_l.png",1,0,272,130));
animImagesL.add(new CoreImageData("image/game/ui/boat_l.png",2,0,272,130));
ArrayList<CoreImageData> animImagesR=new ArrayList<CoreImageData>();
animImagesR.add(new CoreImageData("image/game/ui/boat_r.png",0,0,272,130));
animImagesR.add(new CoreImageData("image/game/ui/boat_r.png",1,0,272,130));
animImagesR.add(new CoreImageData("image/game/ui/boat_r.png",2,0,272,130));
ArrayList<Integer> animLIndex=new ArrayList<Integer>();
animLIndex.add(0);
animLIndex.add(1);
animLIndex.add(2);
ArrayList<Integer> animRIndex=new ArrayList<Integer>();
animRIndex.add(0);
animRIndex.add(1);
animRIndex.add(2);
ArrayList<CoreAnimation> boatAnims=new ArrayList<CoreAnimation>();
boatAnims.add(new CoreAnimation("boatLeft", animImagesL,animLIndex, 0.2f, true));
boatAnims.add(new CoreAnimation("boatRight", animImagesR,animRIndex, 0.2f, true));
boat=new BoatModel(boatSize, boatAnims, 0, 420,400, 272, 130);
this.objectFactory.create(boat, new CoreView(boat, 4));
}
/**
* ボートの再生成
* @param b
*/
private void reCreateBoat(BoatModel b){
//boatAreaが無くなったのでsとりあえず空
}
/**
* UIの作成
*/
private void createUI(){
buttonNextTurn=new ButtonNextTurn(gameController, new CoreImageData("image/goText.png"),
640,670, 400,100);
this.objectFactory.create(buttonNextTurn, new CoreView(buttonNextTurn, 1));
////////////////////////////////////////
//説明欄
////////////////////////////////////////
ArrayList<CoreImageData> examples=new ArrayList<CoreImageData>();
examples.add(new CoreImageData("image/game/ui/textbox_s0.png"));
examples.add(new CoreImageData("image/game/ui/textbox_s1.png"));
examples.add(new CoreImageData("image/game/ui/textbox_s2.png"));
examples.add(new CoreImageData("image/game/ui/textbox_s3.png"));
examples.add(new CoreImageData("image/game/ui/textbox_s4.png"));
ExampleBox exampleBox=new ExampleBox(examples, boat.getRideMaxMenberNum(),
920, 644, 528, 96);
objectFactory.create(exampleBox, new CoreView(exampleBox, 1));
gameController.setExampleBox(exampleBox);
/////////////////////////////////////////
//右側の向こう岸アイコン
////////////////////////////////////////
//ミナミ
CoreModel numIconX2=new CoreModel(new CoreImageData("image/game/ui/opposite_2.png"),
150, 247, 112, 112);
objectFactory.create(numIconX2, new CoreView(numIconX2, 2));
CoreModel numIconX3=new CoreModel(new CoreImageData("image/game/ui/opposite_3.png"),
150, 247, 112, 112);
objectFactory.create(numIconX3, new CoreView(numIconX3, 2));
OppositeIcon oppositeIcon=new OppositeIcon(TARGET_TYPE.MINISTART,
new CoreModel[]{numIconX2,numIconX3},
new CoreImageData("image/game/ui/opposite_blank_l.png"),
new CoreImageData("image/game/ui/opposite_minami_l.png"),
endIsland.getCharaNum(TARGET_TYPE.MINISTART),
140, 247, 144, 112);
this.objectFactory.create(oppositeIcon, new CoreView(oppositeIcon, 1));
gameController.addoppositeRightIcon(oppositeIcon,island.getNowTurn());
//リンゴ
numIconX2=new CoreModel(new CoreImageData("image/game/ui/opposite_2.png"),
150, 247+130, 112, 112);
objectFactory.create(numIconX2, new CoreView(numIconX2, 2));
numIconX3=new CoreModel(new CoreImageData("image/game/ui/opposite_3.png"),
150, 247+130, 112, 112);
objectFactory.create(numIconX3, new CoreView(numIconX3, 2));
oppositeIcon=new OppositeIcon(TARGET_TYPE.CABBAGE,
new CoreModel[]{numIconX2,numIconX3},
new CoreImageData("image/game/ui/opposite_blank_l.png"),
new CoreImageData("image/game/ui/opposite_apple_l.png"),
endIsland.getCharaNum(TARGET_TYPE.CABBAGE),
140, 247+130, 144, 112);
this.objectFactory.create(oppositeIcon, new CoreView(oppositeIcon, 1));
gameController.addoppositeRightIcon(oppositeIcon,island.getNowTurn());
//なんぼう
numIconX2=new CoreModel(new CoreImageData("image/game/ui/opposite_2.png"),
150, 247+130*2, 112, 112);
objectFactory.create(numIconX2, new CoreView(numIconX2, 2));
numIconX3=new CoreModel(new CoreImageData("image/game/ui/opposite_3.png"),
150, 247+130*2, 112, 112);
objectFactory.create(numIconX3, new CoreView(numIconX3, 2));
oppositeIcon=new OppositeIcon(TARGET_TYPE.CATTLE,
new CoreModel[]{numIconX2,numIconX3},
new CoreImageData("image/game/ui/opposite_blank_l.png"),
new CoreImageData("image/game/ui/opposite_nanbou_l.png"),
endIsland.getCharaNum(TARGET_TYPE.CATTLE),
140, 247+130*2, 144, 112);
this.objectFactory.create(oppositeIcon, new CoreView(oppositeIcon, 1));
gameController.addoppositeRightIcon(oppositeIcon,island.getNowTurn());
//へび
numIconX2=new CoreModel(new CoreImageData("image/game/ui/opposite_2.png"),
150, 247+130*3, 112, 112);
objectFactory.create(numIconX2, new CoreView(numIconX2, 2));
numIconX3=new CoreModel(new CoreImageData("image/game/ui/opposite_3.png"),
150, 247+130*3, 112, 112);
objectFactory.create(numIconX3, new CoreView(numIconX3, 2));
oppositeIcon=new OppositeIcon(TARGET_TYPE.WOLF,
new CoreModel[]{numIconX2,numIconX3},
new CoreImageData("image/game/ui/opposite_blank_l.png"),
new CoreImageData("image/game/ui/opposite_snake_l.png"),
endIsland.getCharaNum(TARGET_TYPE.WOLF),
140, 247+130*3, 144, 112);
this.objectFactory.create(oppositeIcon, new CoreView(oppositeIcon, 1));
gameController.addoppositeRightIcon(oppositeIcon,island.getNowTurn());
/////////////////////////////////////////
//左側の向こう岸アイコン
////////////////////////////////////////
//ミナミ
numIconX2=new CoreModel(new CoreImageData("image/game/ui/opposite_2.png"),
1280-150, 247, 112, 112);
objectFactory.create(numIconX2, new CoreView(numIconX2, 2));
numIconX3=new CoreModel(new CoreImageData("image/game/ui/opposite_3.png"),
1280-150, 247, 112, 112);
objectFactory.create(numIconX3, new CoreView(numIconX3, 2));
oppositeIcon=new OppositeIcon(TARGET_TYPE.MINISTART,
new CoreModel[]{numIconX2,numIconX3},
new CoreImageData("image/game/ui/opposite_blank_r.png"),
new CoreImageData("image/game/ui/opposite_minami_r.png"),
island.getCharaNum(TARGET_TYPE.MINISTART),
1280-140, 247, 144, 112);
this.objectFactory.create(oppositeIcon, new CoreView(oppositeIcon, 1));
gameController.addoppositeLeftIcon(oppositeIcon,!island.getNowTurn());
//リンゴ
numIconX2=new CoreModel(new CoreImageData("image/game/ui/opposite_2.png"),
1280-150, 247+130, 112, 112);
objectFactory.create(numIconX2, new CoreView(numIconX2, 2));
numIconX3=new CoreModel(new CoreImageData("image/game/ui/opposite_3.png"),
1280-150, 247+130, 112, 112);
objectFactory.create(numIconX3, new CoreView(numIconX3, 2));
oppositeIcon=new OppositeIcon(TARGET_TYPE.CABBAGE,
new CoreModel[]{numIconX2,numIconX3},
new CoreImageData("image/game/ui/opposite_blank_r.png"),
new CoreImageData("image/game/ui/opposite_apple_r.png"),
island.getCharaNum(TARGET_TYPE.CABBAGE),
1280-140, 247+130, 144, 112);
this.objectFactory.create(oppositeIcon, new CoreView(oppositeIcon, 1));
gameController.addoppositeLeftIcon(oppositeIcon,!island.getNowTurn());
//なんぼう
numIconX2=new CoreModel(new CoreImageData("image/game/ui/opposite_2.png"),
1280-150, 247+130*2, 112, 112);
objectFactory.create(numIconX2, new CoreView(numIconX2, 2));
numIconX3=new CoreModel(new CoreImageData("image/game/ui/opposite_3.png"),
1280-150, 247+130*2, 112, 112);
objectFactory.create(numIconX3, new CoreView(numIconX3, 2));
oppositeIcon=new OppositeIcon(TARGET_TYPE.CATTLE,
new CoreModel[]{numIconX2,numIconX3},
new CoreImageData("image/game/ui/opposite_blank_r.png"),
new CoreImageData("image/game/ui/opposite_nanbou_r.png"),
island.getCharaNum(TARGET_TYPE.CATTLE),
1280-140, 247+130*2, 144, 112);
this.objectFactory.create(oppositeIcon, new CoreView(oppositeIcon, 1));
gameController.addoppositeLeftIcon(oppositeIcon,!island.getNowTurn());
//へび
numIconX2=new CoreModel(new CoreImageData("image/game/ui/opposite_2.png"),
1280-150, 247+130*3, 112, 112);
objectFactory.create(numIconX2, new CoreView(numIconX2, 2));
numIconX3=new CoreModel(new CoreImageData("image/game/ui/opposite_3.png"),
1280-150, 247+130*3, 112, 112);
objectFactory.create(numIconX3, new CoreView(numIconX3, 2));
oppositeIcon=new OppositeIcon(TARGET_TYPE.WOLF,
new CoreModel[]{numIconX2,numIconX3},
new CoreImageData("image/game/ui/opposite_blank_r.png"),
new CoreImageData("image/game/ui/opposite_snake_r.png"),
island.getCharaNum(TARGET_TYPE.WOLF),
1280-140, 247+130*3, 144, 112);
this.objectFactory.create(oppositeIcon, new CoreView(oppositeIcon, 1));
gameController.addoppositeLeftIcon(oppositeIcon,!island.getNowTurn());
//////////////////////////////////////////////////
///左上の渡した回数
///////////////////////////////////////////////////
ArrayList<CoreModel> rightNumbers=new ArrayList<CoreModel>();
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,0,48,64), 176, 118, 48, 64));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,0,48,64), 176, 118, 48, 64));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,0,48,64), 176, 118, 48, 64));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,1,48,64), 176, 118, 48, 64));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,1,48,64), 176, 118, 48, 64));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,1,48,64), 176, 118, 48, 64));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,2,48,64), 176, 118, 48, 64));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,2,48,64), 176, 118, 48, 64));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,2,48,64), 176, 118, 48, 64));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,3,48,64), 176, 118, 48, 64));
for(int i=0;i<rightNumbers.size();i++){
objectFactory.create(rightNumbers.get(i), new CoreView(rightNumbers.get(i), 2));
}
ArrayList<CoreModel> leftNumbers=new ArrayList<CoreModel>();
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,0,48,64), 124, 118, 48, 64));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,0,48,64), 124, 118, 48, 64));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,0,48,64), 124, 118, 48, 64));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,1,48,64), 124, 118, 48, 64));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,1,48,64), 124, 118, 48, 64));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,1,48,64), 124, 118, 48, 64));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,2,48,64), 124, 118, 48, 64));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,2,48,64), 124, 118, 48, 64));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,2,48,64), 124, 118, 48, 64));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,3,48,64), 124, 118, 48, 64));
for(int i=0;i<leftNumbers.size();i++){
objectFactory.create(leftNumbers.get(i), new CoreView(leftNumbers.get(i), 2));
}
NumBox numBox=new NumBox(boat.getMoveNum(), leftNumbers, rightNumbers,
new CoreImageData("image/game/ui/cross_numbox.png"),170, 96, 176, 128);
objectFactory.create(numBox, new CoreView(numBox, 1));
gameController.setNumBox(numBox);
//////////////////////////////////////////////////
///最短経路回数の表示
///////////////////////////////////////////////////
rightNumbers=new ArrayList<CoreModel>();
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,0,48,64), 1137,234, 20,26));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,0,48,64), 1137,234, 20,26));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,0,48,64), 1137,234, 20,26));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,1,48,64), 1137,234, 20,26));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,1,48,64), 1137,234, 20,26));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,1,48,64), 1137,234, 20,26));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,2,48,64), 1137,234, 20,26));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,2,48,64), 1137,234, 20,26));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,2,48,64), 1137,234, 20,26));
rightNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,3,48,64), 1137,234, 20,26));
for(int i=0;i<rightNumbers.size();i++){
objectFactory.create(rightNumbers.get(i), new CoreView(rightNumbers.get(i), 2));
}
leftNumbers=new ArrayList<CoreModel>();
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,0,48,64), 1118,234, 20,26));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,0,48,64), 1118,234, 20,26));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,0,48,64), 1118,234, 20,26));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,1,48,64), 1118,234, 20,26));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,1,48,64), 1118,234, 20,26));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,1,48,64), 1118,234, 20,26));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,2,48,64), 1118,234, 20,26));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",1,2,48,64), 1118,234, 20,26));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",2,2,48,64), 1118,234, 20,26));
leftNumbers.add(new CoreModel(new CoreImageData("image/game/ui/numbers.png",0,3,48,64), 1118,234, 20,26));
for(int i=0;i<leftNumbers.size();i++){
objectFactory.create(leftNumbers.get(i), new CoreView(leftNumbers.get(i), 2));
}
NumBox numBox2=new NumBox(0, leftNumbers, rightNumbers,
new CoreImageData("image/game/ui/cross_minbox.png"),1280-170, 220, 176, 80);
numBox2.setShowView(false);
objectFactory.create(numBox2, new CoreView(numBox2, 1));
gameController.setNumboxS(numBox2);
//////////////////////////////////////////////////////
//セレクト枠 船の乗船人数は最大4なので4つ作成
//////////////////////////////////////////////////////
CoreModel icon=null;
for(int i=0;i<4;i++){
icon=new CoreModel(new CoreImageData("image/game/ui/select.png"), -100, -100,128,176);
objectFactory.create(icon, new CoreView(icon, 2));
gameController.addSelectIcons(icon);
}
//////////////////////////////////////////////////////
//渡るボタンの追加
//////////////////////////////////////////////////////
CrossButton crossButton=new CrossButton(new CoreImageData("image/game/ui/cross_off.png"),
new CoreImageData("image/game/ui/cross_on.png"),
gameController, -100, -100, 272, 130);
objectFactory.create(crossButton, new CoreView(crossButton, 5));
gameController.addCrossButton(crossButton);
//////////////////////////////////////////////////////
//リスタートボタン
//////////////////////////////////////////////////////
OnemorePlayButton onemorePlayButton=new OnemorePlayButton(gameController, new CoreImageData("image/game/ui/onemoreplay.png"),
641, 623, 352, 96);
onemorePlayButton.setShowView(false);
objectFactory.create(onemorePlayButton, new CoreView(onemorePlayButton, 11));
gameController.setOnemorePlayButton(onemorePlayButton);
//////////////////////////////////////////////////////
//タイトルへ戻るボタンの追加
//////////////////////////////////////////////////////
BackToTitleButton backToTitleButton=new BackToTitleButton(gameController, new CoreImageData("image/game/ui/backtotitle.png"),
1025, 623, 352, 96);
backToTitleButton.setShowView(false);
objectFactory.create(backToTitleButton, new CoreView(backToTitleButton, 11));
gameController.setBackToTitleButton(backToTitleButton);
//////////////////////////////////////////////////////
//クリアロゴ
//////////////////////////////////////////////////////
CoreModel clearLogo=new CoreModel(new CoreImageData("image/game/ui/clear.png"),
925, 366, 414, 124);
clearLogo.setShowView(false);
objectFactory.create(clearLogo, new CoreView(clearLogo, 5));
gameController.setClearLogo(clearLogo);
CoreModel perfectLogo=new CoreModel(new CoreImageData("image/game/ui/perfect.png"),
925, 366, 558, 118);
perfectLogo.setShowView(false);
objectFactory.create(perfectLogo, new CoreView(perfectLogo, 5));
gameController.setPerfectLogo(perfectLogo);
}
}