From e79f3f5e10b5aaa8e55bd38c28722ead4a92089b Mon Sep 17 00:00:00 2001 From: Allexit Date: Mon, 18 May 2015 04:26:34 +0300 Subject: [PATCH] Added 5 more levels --- .../gladiator/level/premade/Round10Level.java | 54 ++++++++++++++ .../gladiator/level/premade/Round2Level.java | 6 +- .../gladiator/level/premade/Round3Level.java | 6 +- .../gladiator/level/premade/Round4Level.java | 6 +- .../gladiator/level/premade/Round6Level.java | 68 ++++++++++++++++++ .../gladiator/level/premade/Round7Level.java | 70 +++++++++++++++++++ .../gladiator/level/premade/Round8Level.java | 70 +++++++++++++++++++ .../gladiator/level/premade/Round9Level.java | 68 ++++++++++++++++++ .../gladiator/state/InGameState.java | 8 ++- 9 files changed, 344 insertions(+), 12 deletions(-) create mode 100644 core/src/com/saltosion/gladiator/level/premade/Round10Level.java create mode 100644 core/src/com/saltosion/gladiator/level/premade/Round6Level.java create mode 100644 core/src/com/saltosion/gladiator/level/premade/Round7Level.java create mode 100644 core/src/com/saltosion/gladiator/level/premade/Round8Level.java create mode 100644 core/src/com/saltosion/gladiator/level/premade/Round9Level.java diff --git a/core/src/com/saltosion/gladiator/level/premade/Round10Level.java b/core/src/com/saltosion/gladiator/level/premade/Round10Level.java new file mode 100644 index 0000000..094ba1a --- /dev/null +++ b/core/src/com/saltosion/gladiator/level/premade/Round10Level.java @@ -0,0 +1,54 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.saltosion.gladiator.level.premade; + +import com.badlogic.ashley.core.Entity; +import com.badlogic.gdx.math.Vector2; +import com.saltosion.gladiator.components.CAI; +import com.saltosion.gladiator.level.Level; +import com.saltosion.gladiator.listeners.ai.RelentlessAI; +import com.saltosion.gladiator.util.AppUtil; +import com.saltosion.gladiator.util.Direction; +import com.saltosion.gladiator.util.Global; +import java.util.ArrayList; + +/** + * + * @author Medvith + */ +public class Round10Level implements Level { + + public Entity player; + public ArrayList enemies = new ArrayList(); + + @Override + public String getLevelName() { + return "Final Boss Round"; + } + + @Override + public boolean levelCleared() { + for (Entity enemy : enemies) { + if ((enemy.flags & Global.FLAG_ALIVE) == Global.FLAG_ALIVE) { + return false; + } + } + return true; + } + + @Override + public boolean levelFailed() { + return (player.flags & Global.FLAG_ALIVE) == 0; + } + + @Override + public void generate() { + AppUtil.levelFactory.createLevelBase(); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(10, 2), Direction.LEFT, + new CAI().setReactDistance(15f).setAIListener(new RelentlessAI()))); + } + +} diff --git a/core/src/com/saltosion/gladiator/level/premade/Round2Level.java b/core/src/com/saltosion/gladiator/level/premade/Round2Level.java index ccfcd84..3351728 100644 --- a/core/src/com/saltosion/gladiator/level/premade/Round2Level.java +++ b/core/src/com/saltosion/gladiator/level/premade/Round2Level.java @@ -21,7 +21,7 @@ import com.badlogic.ashley.core.Entity; import com.badlogic.gdx.math.Vector2; import com.saltosion.gladiator.components.CAI; import com.saltosion.gladiator.level.Level; -import com.saltosion.gladiator.listeners.ai.PanicAI; +import com.saltosion.gladiator.listeners.ai.ScaredAI; import com.saltosion.gladiator.util.AppUtil; import com.saltosion.gladiator.util.Direction; import com.saltosion.gladiator.util.Global; @@ -57,9 +57,7 @@ public class Round2Level implements Level { AppUtil.levelFactory.createLevelBase(); player = AppUtil.entityFactory.createPlayer(new Vector2(0, 2), Direction.RIGHT); enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(10, 2), Direction.LEFT, - new CAI().setReactDistance(10f).setAIListener(new PanicAI()))); - enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(-10, 2), Direction.RIGHT, - new CAI().setReactDistance(10f).setAIListener(new PanicAI()))); + new CAI().setReactDistance(12f).setAIListener(new ScaredAI()))); } } diff --git a/core/src/com/saltosion/gladiator/level/premade/Round3Level.java b/core/src/com/saltosion/gladiator/level/premade/Round3Level.java index 42ec0c2..8872482 100644 --- a/core/src/com/saltosion/gladiator/level/premade/Round3Level.java +++ b/core/src/com/saltosion/gladiator/level/premade/Round3Level.java @@ -21,7 +21,7 @@ import com.badlogic.ashley.core.Entity; import com.badlogic.gdx.math.Vector2; import com.saltosion.gladiator.components.CAI; import com.saltosion.gladiator.level.Level; -import com.saltosion.gladiator.listeners.ai.ScaredAI; +import com.saltosion.gladiator.listeners.ai.HunterAI; import com.saltosion.gladiator.util.AppUtil; import com.saltosion.gladiator.util.Direction; import com.saltosion.gladiator.util.Global; @@ -57,9 +57,9 @@ public class Round3Level implements Level { AppUtil.levelFactory.createLevelBase(); player = AppUtil.entityFactory.createPlayer(new Vector2(0, 2), Direction.RIGHT); enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(10, 2), Direction.LEFT, - new CAI().setReactDistance(12f).setAIListener(new ScaredAI()))); + new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(-10, 2), Direction.RIGHT, - new CAI().setReactDistance(12f).setAIListener(new ScaredAI()))); + new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); } } diff --git a/core/src/com/saltosion/gladiator/level/premade/Round4Level.java b/core/src/com/saltosion/gladiator/level/premade/Round4Level.java index 7b49c50..6bffbb9 100644 --- a/core/src/com/saltosion/gladiator/level/premade/Round4Level.java +++ b/core/src/com/saltosion/gladiator/level/premade/Round4Level.java @@ -21,7 +21,7 @@ import com.badlogic.ashley.core.Entity; import com.badlogic.gdx.math.Vector2; import com.saltosion.gladiator.components.CAI; import com.saltosion.gladiator.level.Level; -import com.saltosion.gladiator.listeners.ai.HunterAI; +import com.saltosion.gladiator.listeners.ai.PanicAI; import com.saltosion.gladiator.util.AppUtil; import com.saltosion.gladiator.util.Direction; import com.saltosion.gladiator.util.Global; @@ -57,9 +57,7 @@ public class Round4Level implements Level { AppUtil.levelFactory.createLevelBase(); player = AppUtil.entityFactory.createPlayer(new Vector2(0, 2), Direction.RIGHT); enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(10, 2), Direction.LEFT, - new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); - enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(-10, 2), Direction.RIGHT, - new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); + new CAI().setReactDistance(18f).setAIListener(new PanicAI()))); } } diff --git a/core/src/com/saltosion/gladiator/level/premade/Round6Level.java b/core/src/com/saltosion/gladiator/level/premade/Round6Level.java new file mode 100644 index 0000000..26b92ac --- /dev/null +++ b/core/src/com/saltosion/gladiator/level/premade/Round6Level.java @@ -0,0 +1,68 @@ +/** + * GladiatorBrawler is a 2D swordfighting game. + * Copyright (C) 2015 Jeasonfire/Allexit + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.saltosion.gladiator.level.premade; + +import com.badlogic.ashley.core.Entity; +import com.badlogic.gdx.math.Vector2; +import com.saltosion.gladiator.components.CAI; +import com.saltosion.gladiator.level.Level; +import com.saltosion.gladiator.listeners.ai.HunterAI; +import com.saltosion.gladiator.listeners.ai.ScaredAI; +import com.saltosion.gladiator.util.AppUtil; +import com.saltosion.gladiator.util.Direction; +import com.saltosion.gladiator.util.Global; +import java.util.ArrayList; + +public class Round6Level implements Level { + + public Entity player; + public ArrayList enemies = new ArrayList(); + + @Override + public String getLevelName() { + return "Round 6"; + } + + @Override + public boolean levelCleared() { + for (Entity enemy : enemies) { + if ((enemy.flags & Global.FLAG_ALIVE) == Global.FLAG_ALIVE) { + return false; + } + } + return true; + } + + @Override + public boolean levelFailed() { + return (player.flags & Global.FLAG_ALIVE) == 0; + } + + @Override + public void generate() { + AppUtil.levelFactory.createLevelBase(); + player = AppUtil.entityFactory.createPlayer(new Vector2(0, 2), Direction.RIGHT); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(10, 2), Direction.LEFT, + new CAI().setReactDistance(12f).setAIListener(new ScaredAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(-10, 2), Direction.RIGHT, + new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(15, 2), Direction.LEFT, + new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); + } + +} diff --git a/core/src/com/saltosion/gladiator/level/premade/Round7Level.java b/core/src/com/saltosion/gladiator/level/premade/Round7Level.java new file mode 100644 index 0000000..107f514 --- /dev/null +++ b/core/src/com/saltosion/gladiator/level/premade/Round7Level.java @@ -0,0 +1,70 @@ +/** + * GladiatorBrawler is a 2D swordfighting game. + * Copyright (C) 2015 Jeasonfire/Allexit + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.saltosion.gladiator.level.premade; + +import com.badlogic.ashley.core.Entity; +import com.badlogic.gdx.math.Vector2; +import com.saltosion.gladiator.components.CAI; +import com.saltosion.gladiator.level.Level; +import com.saltosion.gladiator.listeners.ai.PanicAI; +import com.saltosion.gladiator.listeners.ai.ScaredAI; +import com.saltosion.gladiator.util.AppUtil; +import com.saltosion.gladiator.util.Direction; +import com.saltosion.gladiator.util.Global; +import java.util.ArrayList; + +public class Round7Level implements Level { + + public Entity player; + public ArrayList enemies = new ArrayList(); + + @Override + public String getLevelName() { + return "Round 7"; + } + + @Override + public boolean levelCleared() { + for (Entity enemy : enemies) { + if ((enemy.flags & Global.FLAG_ALIVE) == Global.FLAG_ALIVE) { + return false; + } + } + return true; + } + + @Override + public boolean levelFailed() { + return (player.flags & Global.FLAG_ALIVE) == 0; + } + + @Override + public void generate() { + AppUtil.levelFactory.createLevelBase(); + player = AppUtil.entityFactory.createPlayer(new Vector2(0, 2), Direction.RIGHT); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(-10, 2), Direction.RIGHT, + new CAI().setReactDistance(18f).setAIListener(new PanicAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(20, 2), Direction.LEFT, + new CAI().setReactDistance(18f).setAIListener(new PanicAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(-20, 2), Direction.RIGHT, + new CAI().setReactDistance(12f).setAIListener(new ScaredAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(10, 2), Direction.LEFT, + new CAI().setReactDistance(12f).setAIListener(new ScaredAI()))); + } + +} diff --git a/core/src/com/saltosion/gladiator/level/premade/Round8Level.java b/core/src/com/saltosion/gladiator/level/premade/Round8Level.java new file mode 100644 index 0000000..ebdc177 --- /dev/null +++ b/core/src/com/saltosion/gladiator/level/premade/Round8Level.java @@ -0,0 +1,70 @@ +/** + * GladiatorBrawler is a 2D swordfighting game. + * Copyright (C) 2015 Jeasonfire/Allexit + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.saltosion.gladiator.level.premade; + +import com.badlogic.ashley.core.Entity; +import com.badlogic.gdx.math.Vector2; +import com.saltosion.gladiator.components.CAI; +import com.saltosion.gladiator.level.Level; +import com.saltosion.gladiator.listeners.ai.BerserkerAI; +import com.saltosion.gladiator.listeners.ai.HunterAI; +import com.saltosion.gladiator.util.AppUtil; +import com.saltosion.gladiator.util.Direction; +import com.saltosion.gladiator.util.Global; +import java.util.ArrayList; + +public class Round8Level implements Level { + + public Entity player; + public ArrayList enemies = new ArrayList(); + + @Override + public String getLevelName() { + return "Miniboss round (8)"; + } + + @Override + public boolean levelCleared() { + for (Entity enemy : enemies) { + if ((enemy.flags & Global.FLAG_ALIVE) == Global.FLAG_ALIVE) { + return false; + } + } + return true; + } + + @Override + public boolean levelFailed() { + return (player.flags & Global.FLAG_ALIVE) == 0; + } + + @Override + public void generate() { + AppUtil.levelFactory.createLevelBase(); + player = AppUtil.entityFactory.createPlayer(new Vector2(0, 2), Direction.RIGHT); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(10, 2), Direction.LEFT, + new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(20, 2), Direction.LEFT, + new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(-10, 2), Direction.RIGHT, + new CAI().setReactDistance(10f).setAIListener(new BerserkerAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(-20, 2), Direction.RIGHT, + new CAI().setReactDistance(10f).setAIListener(new BerserkerAI()))); + } + +} diff --git a/core/src/com/saltosion/gladiator/level/premade/Round9Level.java b/core/src/com/saltosion/gladiator/level/premade/Round9Level.java new file mode 100644 index 0000000..9aeaac2 --- /dev/null +++ b/core/src/com/saltosion/gladiator/level/premade/Round9Level.java @@ -0,0 +1,68 @@ +/** + * GladiatorBrawler is a 2D swordfighting game. + * Copyright (C) 2015 Jeasonfire/Allexit + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.saltosion.gladiator.level.premade; + +import com.badlogic.ashley.core.Entity; +import com.badlogic.gdx.math.Vector2; +import com.saltosion.gladiator.components.CAI; +import com.saltosion.gladiator.level.Level; +import com.saltosion.gladiator.listeners.ai.HunterAI; +import com.saltosion.gladiator.listeners.ai.ScaredAI; +import com.saltosion.gladiator.util.AppUtil; +import com.saltosion.gladiator.util.Direction; +import com.saltosion.gladiator.util.Global; +import java.util.ArrayList; + +public class Round9Level implements Level { + + public Entity player; + public ArrayList enemies = new ArrayList(); + + @Override + public String getLevelName() { + return "Round 9"; + } + + @Override + public boolean levelCleared() { + for (Entity enemy : enemies) { + if ((enemy.flags & Global.FLAG_ALIVE) == Global.FLAG_ALIVE) { + return false; + } + } + return true; + } + + @Override + public boolean levelFailed() { + return (player.flags & Global.FLAG_ALIVE) == 0; + } + + @Override + public void generate() { + AppUtil.levelFactory.createLevelBase(); + player = AppUtil.entityFactory.createPlayer(new Vector2(0, 2), Direction.RIGHT); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(10, 2), Direction.LEFT, + new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(-10, 2), Direction.LEFT, + new CAI().setReactDistance(8f).setAIListener(new HunterAI()))); + enemies.add(AppUtil.entityFactory.createEnemy(new Vector2(20, 2), Direction.LEFT, + new CAI().setReactDistance(12f).setAIListener(new ScaredAI()))); + } + +} diff --git a/core/src/com/saltosion/gladiator/state/InGameState.java b/core/src/com/saltosion/gladiator/state/InGameState.java index a8fedc6..599ddf1 100644 --- a/core/src/com/saltosion/gladiator/state/InGameState.java +++ b/core/src/com/saltosion/gladiator/state/InGameState.java @@ -19,11 +19,16 @@ package com.saltosion.gladiator.state; import com.saltosion.gladiator.gui.creators.InGameGUICreator; import com.saltosion.gladiator.level.Level; +import com.saltosion.gladiator.level.premade.Round10Level; import com.saltosion.gladiator.level.premade.Round1Level; import com.saltosion.gladiator.level.premade.Round2Level; import com.saltosion.gladiator.level.premade.Round3Level; import com.saltosion.gladiator.level.premade.Round4Level; import com.saltosion.gladiator.level.premade.Round5Level; +import com.saltosion.gladiator.level.premade.Round6Level; +import com.saltosion.gladiator.level.premade.Round7Level; +import com.saltosion.gladiator.level.premade.Round8Level; +import com.saltosion.gladiator.level.premade.Round9Level; import com.saltosion.gladiator.util.AppUtil; import com.saltosion.gladiator.util.AudioLoader; import com.saltosion.gladiator.util.Name; @@ -34,7 +39,8 @@ public class InGameState extends BaseState { * Add new levels to this list */ private static final Level[] levels = {new Round1Level(), new Round2Level(), - new Round3Level(), new Round4Level(), new Round5Level()}; + new Round3Level(), new Round4Level(), new Round5Level(), new Round6Level(), + new Round7Level(), new Round8Level(), new Round9Level(), new Round10Level()}; private Level level; private InGameGUICreator guiCreator;