package org.tjuscs.bulletgame.model.player; import java.util.ArrayList; import org.tjuscs.bulletgame.model.BaseObject; import org.tjuscs.bulletgame.model.GameModel; import org.tjuscs.bulletgame.model.PlayerClass; import org.tjuscs.bulletgame.task.Task; import org.tjuscs.bulletgame.task.Tasks; import org.tjuscs.bulletgame.view.component.AudioPlayer; import org.tjuscs.bulletgame.view.component.Renderer; import org.tjuscs.bulletgame.view.component.Resources; public class PlayerReimu extends PlayerClass { public PlayerReimu() { } @Override public void init() { super.init(); this.setImgs(new ArrayList<String>()); for (int i = 1; i <= 24; i++) { this.getImgs().add("reimu_player" + i); } double[][][] splist = { { { 0, 0, 0, 0, -1 }, { 0, 0, 0, 0, -1 }, { 0, 0, 0, 0, -1 }, { 0, 0, 0, 0, -1 } }, { { 0, -32, 0, -32, 1 }, { 0, 0, 0, 0, -1 }, { 0, 0, 0, 0, -1 }, { 0, 0, 0, 0, -1 } }, { { -30, -10, -15, -20, 1 }, { 30, -10, 15, -20, 1 }, { 0, 0, 0, 0, -1 }, { 0, 0, 0, 0, -1 } }, { { -30, -10, -15, -20, 1 }, { 30, -10, 15, -20, 1 }, { 0, -32, 0, -32, 1 }, { 0, 0, 0, 0, -1 } }, { { -30, -10, -15, -20, 1 }, { 30, -10, 15, -20, 1 }, { -15, -32, -7.5, -32, 1 }, { 15, -32, 7.5, -32, 1 } }, { { -30, -10, -15, -20, 1 }, { 30, -10, 15, -20, 1 }, { -15, -32, -7.5, -32, 1 }, { 15, -32, 7.5, -32, 1 } } }; this.setSlist(splist); this.setA(2); this.setB(2); this.setRect(false); this.setHasslist(true); Task task = Tasks.readScript("script/spell/reimu_sp.xml"); task.setBinding("this", this); this.setTask(task); this.getTask().cancel(); } @Override public void shoot() { ArrayList<BaseObject> objList = GameModel.getInstance().getObjList(); this.setNextshoot(4); objList.add(new ReimuBulletRed("reimu_bullet_red", this.getX() + 6, this.getY(), 24, 90, 1)); objList.add(new ReimuBulletRed("reimu_bullet_red", this.getX() - 6, this.getY(), 24, 90, 1)); if (this.getTimer() % 8 < 4) { for (int i = 0; i <= 3; i++) { if (this.sp[i][2] > 0.5) { objList.add(new ReimuBulletBlue("reimu_bullet_blue", this .getSupportx() + this.sp[i][0], this.getSupporty() + this.sp[i][1], 12, 90, this.getTarget(), 3600, 1.25)); } } } } @Override public void spell() { AudioPlayer.getInstance().PlaySound("gun00", 1.0); this.getTask().reset(); this.setNextspell(240); this.setProtect(360); } @Override public void render() { Resources resources = Resources.getInstance(); Renderer render = Renderer.getInstance(); double rot = this.getAni() * 5; if (this.getSupport() == 5) { resources.SetImageState("reimu_support", "", 255, 255, 255, 128); for (int i = 0; i <= 3; i++) { render.Render("reimu_support", this.getSupportx() + this.sp[i][0], this.getSupporty() + this.sp[i][1], -rot, 1.3); } resources.SetImageState("reimu_support", "", 255, 255, 255, 255); } for (int i = 0; i <= 3; i++) { if (this.sp[i][2] > 0.5) render.Render("reimu_support", this.getSupportx() + this.sp[i][0], this.getSupporty() + this.sp[i][1], rot, 1); } super.render(); } }