Logbook Achievements - UQcsse3200/2024-studio-2 GitHub Wiki

Overview

  • Achievement - contains information about an achievement
  • AchievementManager - manages setup, saving and loading of achievements
  • QuestManager - manages setup of Achievements listeners

Sequence diagram

image

Usage

Achievements are loaded from Assets/defaultsaves/achievementachievements.json and a save is loaded in Assets/saves/achievement/achievements.json by the AchievementsManager. Achievements are read from the AchievementsManager and supporting events and triggers are handled in QuestManager. When an achievement is completed it will show in the logbook. When an achievement is completed but not yet seen it will have a "new" effect placed on it. First time defeats, completion of mini-games to specific standards or pick ups of items trigger achievements.

UML diagram

TabButton

Current achievements

Achievements currently exist for all: items, enemies and minigame medals in the game. These achievements are unlocked on the first collection, defeat of and awarding of their respective related object. The following are the current achievements and the contents of Assets/defaultsaves/achievementachievements.json

{
  achievements: [
    {
      questName: AppleAdvancement
      questDescription: Collect your first apple!
      completed: false
      seen: false
      type: ITEM
      iconPath: images/foodtextures/apple.png
    }
    {
      questName: Attack PotionAdvancement
      questDescription: Collect your first Attack Potion!
      completed: false
      seen: false
      type: ITEM
      iconPath: images/potiontexture/attack.png
    }
    {
      questName: Defense PotionAdvancement
      questDescription: Collect your first Defense Potion!
      completed: false
      seen: false
      type: ITEM
      iconPath: images/potiontexture/defense.png
    }
    {
      questName: Health PotionAdvancement
      questDescription: Collect your first Healing Potion!
      completed: false
      seen: false
      type: ITEM
      iconPath: images/Healthpotion.png
    }
    {
      questName: Speed PotionAdvancement
      questDescription: Collect your first Speed Potion!
      completed: false
      seen: false
      type: ITEM
      iconPath: images/potiontexture/speed.png
    }
    {
      questName: Chicken_LegAdvancement
      questDescription: Collect your first Chicken Leg!
      completed: false
      seen: false
      type: ITEM
      iconPath: images/foodtextures/chicken_leg.png
    }
    {
      questName: MeatAdvancement
      questDescription: Collect your first Meat!
      completed: false
      seen: false
      type: ITEM
      iconPath: images/foodtextures/meat.png
    }
    {
      questName: CandyAdvancement
      questDescription: Collect your first Candy!
      completed: false
      seen: false
      type: ITEM
      iconPath: images/foodtextures/candy.png
    }
    {
      questName: CarrotAdvancement
      questDescription: Collect your first Carrot!
      completed: false
      seen: false
      type: ITEM
      iconPath: images/foodtextures/carrot.png
    }
    {
      questName: First Steps
      questDescription: Take your first steps in this world!
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/first-steps.png
    }
    {
      questName: BRONZE SNAKE
      questDescription: Finish the snake mini game with a bronze medal
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/snake-bronze.png
    }
    {
      questName: SILVER SNAKE
      questDescription: Finish the snake mini game with a silver medal
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/snake-silver.png
    }
    {
      questName: GOLD SNAKE
      questDescription: Finish the snake mini game with a gold medal
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/snake-gold.png
    }
    {
      questName: BRONZE BIRD
      questDescription: Finish the bird mini game with a bronze medal
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/bird-bronze.png
    }
    {
      questName: SILVER BIRD
      questDescription: Finish the bird mini game with a silver medal
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/bird-silver.png
    }
    {
      questName: GOLD BIRD
      questDescription: Finish the bird mini game with a gold medal
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/bird-gold.png
    }
    {
      questName: MONKEY
      questDescription: Defeat the fearsome monkey!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/monkey.png
    }
    {
      questName: CHICKEN
      questDescription: Defeat the terrifying chicken!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/chicken.png
    }
    {
      questName: FROG
      questDescription: Defeat the dangerous frog!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/frog.png
    }
    {
      questName: KANGAROO
      questDescription: Defeat the MIGHTY KANGAROO!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/final_boss_kangaroo_idle.png
    }
    {
      questName: BEAR
      questDescription: Defeat the MIGHTY BEAR!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/update-3/bear.png
    }
    {
      questName: BEE
      questDescription: Defeat the MIGHTY BEE!
      completed: false
      seen: false
      type: ENEMY
      iconPath:  images/logbook/icons/update-3/bee.png
    }
    {
      questName: PIGEON
      questDescription: Defeat the MIGHTY PIGEON!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/update-3/pigeon.png
    }
    {
      questName: MACAW
      questDescription: Defeat the MIGHTY MACAW!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/update-3/macaw.png
    }
    {
      questName: EEL
      questDescription: Defeat the MIGHTY EEL!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/update-3/eel.png
    }
    {
      questName: BIGSAWFISH
      questDescription: Defeat the MIGHTY BIG SAW FISH!!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/update-3/bigsawfish.png
    }
    {
      questName: MilkAdvancement
      questDescription: Got Milk
      completed: false
      seen: false
      type: ITEM
      iconPath: images/logbook/icons/update-3/milk.png
    }
    {
      questName: CaviarAdvancement
      questDescription: Find Sushi
      completed: false
      seen: false
      type: ITEM
      iconPath: images/logbook/icons/update-3/sushi.png
    }
    {
      questName: LootBoxAdvancement
      questDescription: Find a lootBox
      completed: false
      seen: false
      type: ITEM
      iconPath: images/logbook/icons/update-3/lootbox.png
    }
    {
      questName: BRONZE MAZE
      questDescription: Finish the FISH mini game with a bronze medal
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/update-3/fish-bronze.png
    }
    {
      questName: SILVER MAZE
      questDescription: Finish the FISH mini game with a silver medal
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/update-3/fish-silver.png
    }
    {
      questName: GOLD MAZE
      questDescription: Finish the FISH mini game with a gold medal
      completed: false
      seen: false
      type: ADVANCEMENT
      iconPath: images/logbook/icons/update-3/fish-gold.png
    }
    {
      questName: WATERBOSS
      questDescription: Defeat the MIGHTY WATER BOSS!!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/update-3/waterboss.png
    }
    {
      questName: AIRBOSS
      questDescription: Defeat the MIGHTY AIR BOSS!!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/update-3/airboss.png
    }
    {
      questName: JOEY
      questDescription: Defeat the MIGHTY AIR BOSS!!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/update-3/joey.png
    }
    {
      questName: PIRANHA
      questDescription: Defeat the piranha!
      completed: false
      seen: false
      type: ENEMY
      iconPath: images/logbook/icons/update-3/piranha.png
    }
  ]
}