/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.gui; import com.badlogic.gdx.Application; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.ParticleEffect; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.HeyZapCheckInButton; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.utils.Scaling; import com.happydroids.droidtowers.TowerAssetManager; import com.happydroids.droidtowers.achievements.Achievement; import com.happydroids.droidtowers.platform.Display; public class AchievementNotification extends Dialog { private final ParticleEffect particleEffect; public AchievementNotification(Achievement achievement) { super(); particleEffect = new ParticleEffect(); particleEffect.load(Gdx.files.internal("particles/sparkle-dialog.p"), Gdx.files.internal("particles")); setTitle("Achievement Complete: " + achievement.getName()); Table t = new Table(); t.defaults().left().top().space(Display.devicePixel(8)).expandX(); t.add(FontManager.Roboto24.makeLabel("Great job!")).top(); t.row(); t.add(new HorizontalRule(Color.GRAY, 1)).fillX(); t.row(); t.add(FontManager.Default.makeLabel(achievement.toRewardString())).top(); Table c = new Table(); c.defaults().top().left(); c.row().fillX(); c.add(new Image(TowerAssetManager.drawableFromAtlas("trophy", "hud/menus.txt"), Scaling.none)) .padRight(Display.devicePixel(8)); c.add(t).expandX().minWidth(300); c.setClip(true); c.pack(); addButton("Dismiss", new VibrateClickListener() { @Override public void onClick(InputEvent event, float x, float y) { dismiss(); } }); if (Gdx.app.getType().equals(Application.ApplicationType.Android)) { addButton(new HeyZapCheckInButton("Completed achievement: " + achievement.getName())); } setView(c); } @Override public void act(float delta) { super.act(delta); particleEffect.setPosition(getX() + getWidth() / 2, getY() + getHeight() / 2); particleEffect.update(delta); } @Override protected void drawModalNoise(SpriteBatch batch) { super.drawModalNoise(batch); particleEffect.draw(batch); } }