def attack1(self): if GameSession.isEasy(): return if self.attackCnt % 10 == 0: n = int(self.attackCnt / 10) pt = __class__.laserPointTable[n] if GameSession.isHard(): ObjMgr.addObj( boss.DelayedShotLaser1( self.x + pt[0], self.y + pt[1], -math.pi / 2 + math.pi / 4 * n + math.pi / 16)) ObjMgr.addObj( boss.DelayedShotLaser1( self.x + pt[0], self.y + pt[1], -math.pi / 2 + math.pi / 4 * n - math.pi / 16)) else: ObjMgr.addObj( boss.DelayedShotLaser1(self.x + pt[0], self.y + pt[1], -math.pi / 2 + math.pi / 4 * n)) self.attackCnt += 1 if self.attackCnt > 10 * 7: self.attackCnt = 0 self.attackState += 1
def update(self): self.mover.update() if self.state == 1: if self.mover.tableIndex == 0: # STOP self.shiftPos = (self.mover.cnt/30) * 8 elif self.mover.tableIndex == 11: # STOP self.shiftPos = 8 -(self.mover.cnt/30) * 8 elif self.mover.tableIndex >= 1: if self.mover.mode == CountMover.MOVE: fx = 1 dr = 32 if self.x < ObjMgr.myShip.x: fx = -1 dr = 0 if self.cnt % 60 == 0: if GameSession.isEasy(): enemy.enemy_shot_dr_multi(self.x -48 * fx, self.y-20, 3, 0, dr, 3, 4) enemy.enemy_shot_dr_multi(self.x -48 * fx, self.y+20, 3, 0, dr, 3, 4) elif GameSession.isHard(): enemy.enemy_shot_dr_multi(self.x -48 * fx, self.y-20, 3, 0, dr, 6, 2) enemy.enemy_shot_dr_multi(self.x -48 * fx, self.y+20, 3, 0, dr, 6, 2) else: enemy.enemy_shot_dr_multi(self.x -48 * fx, self.y-20, 3, 0, dr, 4, 3) enemy.enemy_shot_dr_multi(self.x -48 * fx, self.y+20, 3, 0, dr, 4, 3) elif self.state == 2: if self.mover.tableIndex == 0: # STOP self.shiftPos = (self.mover.cnt/30) * 8 elif self.mover.tableIndex == 11: # STOP self.shiftPos = 8 -(self.mover.cnt/30) * 8 elif self.mover.tableIndex >= 1: if self.mover.mode == CountMover.MOVE: fx = 1 if self.x < ObjMgr.myShip.x: fx = -1 speed = -4.0 if self.x < ObjMgr.myShip.x: speed = 4.0 if self.cnt % 60 == 0: #enemy.enemy_shot_dr_multi(self.x -48 * fx, self.y-20, 3, 0, dr, 4, 3) #enemy.enemy_shot_dr_multi(self.x -48 * fx, self.y+20, 3, 0, dr, 4, 3) ObjMgr.addObj(BossLabyrinthShot1(self.x -48 * fx, self.y, speed)) # ObjMgr.addObj(BossLabyrinthShot1(self.x -48, self.y-20, 4)) # ObjMgr.addObj(BossLabyrinthShot1(self.x -48, self.y+20, 4)) # ObjMgr.addObj(BossLabyrinthShot1(self.x -48, self.y+20+16, 4)) if self.mover.cnt == 30: ObjMgr.addObj(BossLabyrinthBeam1(self, 32, -32, math.pi * 1.75)) ObjMgr.addObj(BossLabyrinthBeam1(self, -32, -32, math.pi * 1.25)) ObjMgr.addObj(BossLabyrinthBeam1(self, -32, 32, math.pi * 0.75)) ObjMgr.addObj(BossLabyrinthBeam1(self, 32, 32, math.pi * 0.25)) elif self.state == 100: # 破壊状態 if self.cnt % 10 == 0: enemy.create_explosion2(self.x + random.randrange(-30, 30), self.y + random.randrange(-30, 30), self.layer, gcommon.C_EXPTYPE_SKY_M, -1) if self.cnt > 120: self.mover = CountMover(self, self.moveTable101, False) self.nextState() elif self.state == 101: # 破壊状態 if self.cnt > 90: self.remove() ObjMgr.addObj(BossLabyrinth2(self.isBossRush, self.timerObj)) if self.state < 100 and self.mover.isEnd: if self.state == 0: self.setState(1) self.mover = CountMover(self, self.moveTable1, False) elif self.state == 1: self.setState(2) self.mover = CountMover(self, self.moveTable1, False) elif self.state == 2: self.setState(1) self.mover = CountMover(self, self.moveTable1, False)