├── docs └── .keep ├── .gitignore ├── res ├── raw │ ├── firefly.ogg │ └── lavender.ogg ├── drawable │ ├── icon.png │ ├── helium.png │ ├── player.png │ ├── station.png │ ├── hydrogen.png │ ├── healthicon.png │ ├── projectile.png │ ├── instructions_fire.png │ ├── play_area_shield.png │ └── instructions_rotate.png ├── menu │ └── main_menu.xml ├── layout │ ├── main.xml │ ├── checkpoint_reached.xml │ ├── game_over.xml │ └── instructions.xml ├── values-ja │ └── strings.xml ├── values │ └── strings.xml ├── values-fr │ └── strings.xml ├── values-de │ └── strings.xml └── xml │ └── levels.xml ├── music-src ├── firefly.mmpz ├── lavender.mmpz └── README.md ├── website ├── big_station.png ├── fdroid_badge.png ├── icon_large.png ├── screenshot1.png ├── screenshot2.png ├── screenshot3.png ├── google_play_badge.png ├── style.css └── index.html ├── CHANGELOG.md ├── project.properties ├── src └── info │ └── meoblast001 │ └── thugaim │ ├── IDamageable.java │ ├── engine │ ├── ShutdownHandlingActivity.java │ ├── IGameRuntime.java │ ├── Audio.java │ ├── World.java │ ├── Engine.java │ ├── Actor.java │ └── Graphics.java │ ├── Player.java │ ├── Instructions.java │ ├── Station.java │ ├── CheckpointReached.java │ ├── GameOver.java │ ├── HealthBar.java │ ├── LevelDescriptor.java │ ├── Projectile.java │ ├── PlayAreaShield.java │ ├── Vehicle.java │ ├── npc │ ├── HeliumFighter.java │ ├── NPCVehicle.java │ └── HydrogenFighter.java │ ├── Thugaim.java │ ├── ThugaimRuntime.java │ └── StationGraph.java ├── ant.properties ├── LICENSE.txt ├── README.md └── AndroidManifest.xml /docs/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | local.properties 2 | proguard-project.txt 3 | bin/ 4 | gen/ 5 | docs/ 6 | lib/ 7 | -------------------------------------------------------------------------------- /res/raw/firefly.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/raw/firefly.ogg -------------------------------------------------------------------------------- /res/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/icon.png -------------------------------------------------------------------------------- /res/raw/lavender.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/raw/lavender.ogg -------------------------------------------------------------------------------- /music-src/firefly.mmpz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/music-src/firefly.mmpz -------------------------------------------------------------------------------- /music-src/lavender.mmpz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/music-src/lavender.mmpz -------------------------------------------------------------------------------- /res/drawable/helium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/helium.png -------------------------------------------------------------------------------- /res/drawable/player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/player.png -------------------------------------------------------------------------------- /res/drawable/station.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/station.png -------------------------------------------------------------------------------- /website/big_station.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/website/big_station.png -------------------------------------------------------------------------------- /website/fdroid_badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/website/fdroid_badge.png -------------------------------------------------------------------------------- /website/icon_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/website/icon_large.png -------------------------------------------------------------------------------- /website/screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/website/screenshot1.png -------------------------------------------------------------------------------- /website/screenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/website/screenshot2.png -------------------------------------------------------------------------------- /website/screenshot3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/website/screenshot3.png -------------------------------------------------------------------------------- /res/drawable/hydrogen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/hydrogen.png -------------------------------------------------------------------------------- /res/drawable/healthicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/healthicon.png -------------------------------------------------------------------------------- /res/drawable/projectile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/projectile.png -------------------------------------------------------------------------------- /website/google_play_badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/website/google_play_badge.png -------------------------------------------------------------------------------- /res/drawable/instructions_fire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/instructions_fire.png -------------------------------------------------------------------------------- /res/drawable/play_area_shield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/play_area_shield.png -------------------------------------------------------------------------------- /res/drawable/instructions_rotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meoblast001/thugaim/HEAD/res/drawable/instructions_rotate.png -------------------------------------------------------------------------------- /music-src/README.md: -------------------------------------------------------------------------------- 1 | This directory contains the source files for all music. The songs have been made 2 | with [LMMS](https://www.lmms.io/). 3 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 1.1 2 | ----- 3 | * French translation. 4 | 5 | 1.0 6 | ----- 7 | * Initial release with all planned game functionality. 8 | * Translations in English and German 9 | -------------------------------------------------------------------------------- /res/menu/main_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | # Project target. 11 | target=android-13 12 | -------------------------------------------------------------------------------- /res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/info/meoblast001/thugaim/IDamageable.java: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2015 Braden Walters 3 | 4 | This software may be modified and distributed under the terms of the MIT 5 | license. See the LICENSE file for details. 6 | */ 7 | 8 | package info.meoblast001.thugaim; 9 | 10 | /** 11 | An actor which can take damage from projectiles. 12 | */ 13 | public interface IDamageable 14 | { 15 | /** 16 | Reduces health by 1. If health reaches zero, actor is removed from the world. 17 | */ 18 | public void reduceHealth(); 19 | } 20 | -------------------------------------------------------------------------------- /src/info/meoblast001/thugaim/engine/ShutdownHandlingActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2014 Braden Walters 3 | 4 | This software may be modified and distributed under the terms of the MIT 5 | license. See the LICENSE file for details. 6 | */ 7 | 8 | package info.meoblast001.thugaim.engine; 9 | 10 | import android.app.Activity; 11 | 12 | /** 13 | Handles engine shutdown. 14 | */ 15 | public abstract class ShutdownHandlingActivity extends Activity 16 | { 17 | /** 18 | Called by the engine after it shuts down internally (i.e. calls to 19 | Engine.shutdown do not result in this method being called). 20 | @param winner If true, player won, if false, player lost. 21 | */ 22 | public abstract void onShutdown(boolean winner); 23 | } 24 | -------------------------------------------------------------------------------- /ant.properties: -------------------------------------------------------------------------------- 1 | # This file is used to override default values used by the Ant build system. 2 | # 3 | # This file must be checked into Version Control Systems, as it is 4 | # integral to the build system of your project. 5 | 6 | # This file is only used by the Ant script. 7 | 8 | # You can use this to override default values such as 9 | # 'source.dir' for the location of your java source folder and 10 | # 'out.dir' for the location of your output folder. 11 | 12 | # You can also use it define how the release builds are signed by declaring 13 | # the following properties: 14 | # 'key.store' for the location of your keystore and 15 | # 'key.alias' for the name of the key to use. 16 | # The password will be asked during the build when you use the 'release' target. 17 | 18 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Braden Walters 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included 12 | in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 20 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /src/info/meoblast001/thugaim/Player.java: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2013 - 2014 Braden Walters 3 | 4 | This software may be modified and distributed under the terms of the MIT 5 | license. See the LICENSE file for details. 6 | */ 7 | 8 | package info.meoblast001.thugaim; 9 | 10 | import info.meoblast001.thugaim.engine.Engine; 11 | import info.meoblast001.thugaim.R; 12 | 13 | /** 14 | Player character which responds to player input. Only one exists per world. 15 | */ 16 | public class Player extends Vehicle 17 | { 18 | public static final int MAX_HEALTH = 50; 19 | 20 | public Player(Engine engine, StationGraph station_graph) 21 | { 22 | super(engine, "player", R.drawable.player, 0.0f, 0.0f, 0.0f, MAX_HEALTH, 23 | station_graph); 24 | setSpeed(1.0f); 25 | } 26 | 27 | @Override 28 | public void update(long millisecond_delta, float rotation, boolean tapped) 29 | { 30 | if (getWorld() == null) 31 | return; 32 | 33 | //Destroy player if it goes outside of the play area. 34 | if (!getWorld().isInsidePlayArea(this)) 35 | { 36 | reduceHealth(MAX_HEALTH); //Destroy player. 37 | return; 38 | } 39 | 40 | if (tapped) 41 | fire(); 42 | 43 | rotate(rotation, millisecond_delta); 44 | super.update(millisecond_delta, rotation, tapped); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /res/layout/checkpoint_reached.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 12 | 15 | 16 | 20 | 21 |