Another ugly tower defense for Android

Related tags

App android-anuto
Overview

Anuto - Another Ugly Tower Defense

Travis-ci

Anuto is yet another tower defense game for Android. However it features astonishing hand-drawn graphics and a smooth gameplay.

Download

Get it on F-Droid Get it on Google Play

Beta Testing

Become a beta tester!

How to play

  • Buy new towers by dragging a tower from the inventory at the top onto the field. Make sure you have enough credits.
  • Open the properties window for a tower by double tapping it. To close the window tap somewhere on the field.
  • Strategy: Determines which enemy to target if there are multiple in range.
  • Lock Target: If true the tower will not switch target until it is dead or out of range.
  • Enhance: Increases the level of the tower making it better.
  • Upgrade: Replaces the tower with a higher tier tower. Note that any enhancements of the tower are lost.
  • Sell: Removes the tower. Refund decreases over time.
  • Call in the next wave using the button in the upper right corner. If you call in the next wave while there are still enemies in the game you receive bonus credits.
  • Make sure the enemies don't make it through the course!
Comments
  • Level 10 is unbeatable

    Level 10 is unbeatable

    I've consistently annihilated everything, but the stars, on level 10 with an effective three zone strategy. The stars roll through like an armored convoy.

    help wanted balancing 
    opened by Rbagman 28
  • Fix overlapping top textviews

    Fix overlapping top textviews

    Recent merges (speed up & enemy counter) have added text to top bar. The views now overlap, sometimes. It may depend on language settings and screen size. Here is a shot from a 5.2'' screen:

    Screenshot_2017-07-10-18-47-42.png

    bug 
    opened by civyshk 20
  • Not enough fire power to pass wave 56

    Not enough fire power to pass wave 56

    Cannons are practically ineffective. Creeps simply stay alive and walk no matter what turrets are around. Even if there are "eaters" at the end to send them back to start, they don't die...

    balancing 
    opened by jkufner 18
  • lagging when the screen is full of

    lagging when the screen is full of "monsters"

    http://hpics.li/ad4eff6

    As you can see on the picture the screen is full of "monsters". But on the screenshot you cannot see that at this point the game is lagging a lot !!

    enhancement 
    opened by Bahjesaispas 12
  • How to defeat fliers in wave 68 and up?

    How to defeat fliers in wave 68 and up?

    What's the best strategy against fliers in waves above 68? I never managed to get beyond 72, although trying different strategies. Bullet hoses and rockets do only little damage and the fliers are too fast to get them.

    help wanted balancing 
    opened by pikim 10
  • Savegamesimulator

    Savegamesimulator

    Integrate Savegame in TestUnit

    Savegame functionality tested:

    • save game
    • query available savegames
    • load savegame
    • delete savegame

    Also done some (mostly automatic) clean ups...

    opened by oezgueremir 9
  • Colored theme

    Colored theme

    At the moment, only a few things are colored (laser, explosion, lifebars, range and not enough money to buy tower). I feel after a short time that the game becomes dull because of missing colors. I would like to have the option to have colored towers, missiles, enemies, walls and paths.

    enhancement 
    opened by wesen1 9
  • AndroidX and code improvements

    AndroidX and code improvements

    1st commit

    • Migrate to AndroidX

    2nd commit

    • Add Java 1.8 support
    • Use Java 1.8 features
    • (Includes some 5 and 7 migration as well)

    3rd commit

    • Automatic code cleanup by Android Studio

    4th commit

    • Make some inner classes static

    5th commit

    • Fix integer division in floating-point contexts

    6th commit

    • Update the gradle wrapper to 6.1.1 using git bash

    7th commit

    • Even more code cleanup
    opened by TacoTheDank 7
  • Cheaper to sell and start again than to upgrade

    Cheaper to sell and start again than to upgrade

    If you enhance a turret, its upgrade price remains the same. This means that if you want to upgrade a tower later, enhancing it now is as good as throwing away the credits. I assume this is intended.

    This sort of makes sense, and makes the player think twice before spending money for the short term. Then again, I think the upgrade price should go down even if a little bit when enhancing. Since enhancing increases the sell price, sometimes it gets to a point where it's cheaper to sell a very enhanced turret and start from scratch with a number of upgrades instead of upgrading it directly.

    What about reducing the upgrade cost at the same rate that the sell cost is increased? That would nullify this effect.

    balancing 
    opened by mvdan 7
  • [Feature Request] Darker theme

    [Feature Request] Darker theme

    I love this game. I've noticed that the battery drain is very high, I think part of it is the bright background. It's also hard on my eyes to play it in the dark.

    My original thought was to color invert all the pngs (either the files themselves or in memory after loading), but I whipped up a quick test by merely color-inverting plateau1.png and it looks good enough to me.

    screen capture

    In BasicPlateau.java I changed: s.sprite = Sprite.fromResources(R.drawable.plateau1, 4); to s.sprite = Sprite.fromResources(R.drawable.plateau2, 4);

    Obviously it'd need a setting switch somewhere, or a toggle maybe?

    Thanks!

    plateau2

    opened by quaap 6
  • Laser turret is too underpowered, also crashes at upgrade 3

    Laser turret is too underpowered, also crashes at upgrade 3

    It's fire rate is too slow, if I start off with a laser turret I will have monsters slipping by. It's second upgrade isn't very powerful either. The game locked up at upgrade 3.

    This is a good game though, keep up the good work!

    balancing 
    opened by sloanonlinux 6
  • Anuto in a blockchain?

    Anuto in a blockchain?

    Dafuq is this? Creepts - Decentralized Tower Defense Game @ https://github.com/cartesi/creepts-dapp https://www.youtube.com/watch?v=Xq7zC4PKLdM imagen

    https://creepts.cartesi.io/en/ imagen

    So AnutoTD has a DApp version and lives in the blockchain with a different name. Just sharing here my discovery.

    opened by civyshk 1
  • Attempt to read from field 'android.graphics.Paint ch.logixisland.anuto.entity.effect.TeleportEffect$StaticData.mPaint' on a null object reference

    Attempt to read from field 'android.graphics.Paint ch.logixisland.anuto.entity.effect.TeleportEffect$StaticData.mPaint' on a null object reference

    I quickly report a crash, I hope it helps.

    Don't know how to reproduce, but I was testing the game with a x16 speed accelerator and loading a new wage with the last one still here. So with a lot of enemies on screen and moving fast.

    The progression is lost in that case.

    03-21 12:25:04.333 E/AndroidRuntime(14982): FATAL EXCEPTION: main
    03-21 12:25:04.333 E/AndroidRuntime(14982): Process: ch.logixisland.anuto, PID: 14982
    03-21 12:25:04.333 E/AndroidRuntime(14982): java.lang.NullPointerException: Attempt to read from field 'android.graphics.Paint ch.logixisland.anuto.entity.effect.TeleportEffect$StaticData.mPaint' on a null object reference
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at ch.logixisland.anuto.entity.effect.TeleportEffect$StaticData.access$200(TeleportEffect.java:18)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at ch.logixisland.anuto.entity.effect.TeleportEffect$TeleportDrawable.draw(TeleportEffect.java:34)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at ch.logixisland.anuto.engine.render.Renderer.draw(Renderer.java:82)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at ch.logixisland.anuto.view.game.GameView.onDraw(GameView.java:66)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.View.draw(View.java:22350)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.View.updateDisplayListIfDirty(View.java:21226)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.View.updateDisplayListIfDirty(View.java:21186)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.View.updateDisplayListIfDirty(View.java:21186)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.View.updateDisplayListIfDirty(View.java:21186)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.View.updateDisplayListIfDirty(View.java:21186)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:559)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:565)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:642)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewRootImpl.draw(ViewRootImpl.java:4106)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3833)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3104)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1948)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8177)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.Choreographer.doCallbacks(Choreographer.java:796)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.Choreographer.doFrame(Choreographer.java:731)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.os.Handler.handleCallback(Handler.java:938)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.os.Looper.loop(Looper.java:223)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at android.app.ActivityThread.main(ActivityThread.java:7664)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at java.lang.reflect.Method.invoke(Native Method)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    03-21 12:25:04.333 E/AndroidRuntime(14982): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
    
    opened by Massedil 2
  • misspelling in app/src/main/res/values/strings.xml

    misspelling in app/src/main/res/values/strings.xml

    Line 99 says " If an enemy finishes the path, you loose one life. The game is over if you have no more lives left.\n\nTip: Some towers are more effective against a certain type of enemy than others."

    loose should be lose

    opened by ghost 0
  • Export saves ?

    Export saves ?

    Hello, First, thanks a lot for this excellent game :D I have a simple question/request : ils it possible to export our saves on another phone ? (I changed my phone ans i would like to continue my current games on it :) ) Thanks in advance !

    enhancement 
    opened by Caribou22 1
Releases(v0.9-1)
Owner
Mario Jaun
Mario Jaun
Yet another static code analyzer for malicious Android applications

Androwarn Yet another static code analyzer for malicious Android applications Description Androwarn is a tool whose main aim is to detect and warn the

Thomas D. 422 Dec 28, 2022
Yet another ToDo app, but the UI completely written in Jetpack Compose!

Yet another ToDo app, but the UI completely written in Jetpack Compose!

Wisnu Kurniawan 134 Dec 31, 2022
Just another Quotes app with beautiful UI which shows random quotes from the internet

RandomQuotes Just another Quotes app with beautiful UI which shows random quotes from the internet. Screenshots Libraries Volley Android Material API

Hamza Aziz 5 Mar 2, 2022
android-delicious Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play.

Delicious Android Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play. Fea

Alexander Blom 137 Nov 20, 2022
Android cutout screen support Android P. Android O support huawei, xiaomi, oppo and vivo.

CutoutScreenSupport Android cutout screen support Android P. Android O support huawei, xiaomi, oppo and vivo. Usage whether the mobile phone is cutout

hacket 5 Nov 3, 2022
FoldingNavigationDrawer-Android This is a sample project present how to use Folding-Android to add Folding Efect to Navigation Drawer.

FoldingNavigationDrawer-Android Sample (Play Store Demo) This is a sample project present how to use Folding-Android to add Folding Efect to Navigatio

null 242 Nov 25, 2022
Twidere-Android Twidere is a powerful twitter client for Android 1.6+ 1 , which gives you a full Holo experience and nearly full Twitter's feature.

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Jan 2, 2023
:movie_camera: Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.

Popular Movies Stage 1 + Stage 2 Discover the most popular and top rated movies playing. Movies data fetched using themoviedb.org API. ✨ Screenshots M

Yassin AJDI 189 Nov 26, 2022
Extensible Android mobile voice framework: wakeword, ASR, NLU, and TTS. Easily add voice to any Android app!

Spokestack is an all-in-one solution for mobile voice interfaces on Android. It provides every piece of the speech processing puzzle, including voice

Spokestack 57 Nov 20, 2022
Aggregated Android news, articles, podcasts and conferences about Android Development

DroidFeed Curated news feed for Android Developers! Stay up to date with the latest Android Development news. Built for the Android developer communit

Dogan Gulcan 183 Dec 2, 2022
Shreyas Patil 2.1k Dec 30, 2022
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar

#Android-LollipopShowcase This is a simple showcase to show off Android's all new Material Design and some other cool new stuff which is (new) in Andr

Mike Penz 1.8k Nov 10, 2022
The Android startup used to schedule tasks, jobs while launching Android App.

Android Startup, schedule your startup jobs Introduction AndroidStartup is an open source project used to refine your Andriod App startup. Compared wi

ShouHeng 46 Aug 24, 2022
Android playground project with modularization by feature (android libraries), unit tests, MVVM & MVI.

Movies Movies is a simple project to study and play with some android components, architecture and tools for Android development. Tech Stack This proj

Christopher Elias 333 Dec 30, 2022
🌄 Photo editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and PhotoEditor (Android)

React Native Photo Editor (RNPE) ?? Image editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and Ph

Baron Ha. 242 Dec 28, 2022
Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

MindOrks 1.2k Dec 29, 2022
A simple Android app to demonstrate the use of Hover SDK for M-PESA Send Money while offline. This SDK does not require an internet connection, it automates USSD sessions in the background of an android application.

HoverSDKDemo Hover SDK is an Android SDK that lets mobile developers to add money features to the applications. This SDK does not require an internet

Joel Kanyi 9 Dec 21, 2022
Source code of JekyllEx Android App which can manage your Jekyll blog directly from your Android device!

JekyllEx Android App Built with ❤︎ by Gourav Khunger ?? Introduction JekyllEx is an Android App that allows you to manage a Jekyll Blog directly from

JekyllEx 24 Nov 8, 2022
A Simple and Minimal Quotes Android Application to demonstrate the Modern Android Development tools

Quotee Android ?? A Simple and Minimal Quotes Android Application to demonstrate the Modern Android Development tools. Developed with ❤️ by Aminullah

null 12 Aug 24, 2022