Fix equipment upgrade tests, left them in by accident. Added kill amount achievements. Release Build 8530.
This commit is contained in:
parent
de52654380
commit
e3f79e6965
@ -3712,7 +3712,6 @@ void AiL::ResetGame(bool changeToMainMenu){
|
|||||||
for(int i=0;i<GetLoadoutSize();i++){
|
for(int i=0;i<GetLoadoutSize();i++){
|
||||||
game->ClearLoadoutItem(i);
|
game->ClearLoadoutItem(i);
|
||||||
}
|
}
|
||||||
Unlock::unlocks.clear();
|
|
||||||
Unlock::Initialize();
|
Unlock::Initialize();
|
||||||
State_OverworldMap::SetStageMarker("Story I");
|
State_OverworldMap::SetStageMarker("Story I");
|
||||||
State_OverworldMap::UpdateCurrentConnectionPoint(*State_OverworldMap::currentConnectionPoint);
|
State_OverworldMap::UpdateCurrentConnectionPoint(*State_OverworldMap::currentConnectionPoint);
|
||||||
|
@ -47,6 +47,7 @@ All rights reserved.
|
|||||||
#include "MonsterAttribute.h"
|
#include "MonsterAttribute.h"
|
||||||
#include "ItemDrop.h"
|
#include "ItemDrop.h"
|
||||||
#include "SoundEffect.h"
|
#include "SoundEffect.h"
|
||||||
|
#include "Unlock.h"
|
||||||
|
|
||||||
INCLUDE_ANIMATION_DATA
|
INCLUDE_ANIMATION_DATA
|
||||||
INCLUDE_MONSTER_DATA
|
INCLUDE_MONSTER_DATA
|
||||||
@ -723,6 +724,8 @@ void Monster::OnDeath(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Unlock::IncreaseKillCount();
|
||||||
|
|
||||||
if(hasStrategyDeathFunction){
|
if(hasStrategyDeathFunction){
|
||||||
GameEvent::AddEvent(std::make_unique<MonsterStrategyGameEvent>(strategyDeathFunc,*this,MONSTER_DATA[name].GetAIStrategy()));
|
GameEvent::AddEvent(std::make_unique<MonsterStrategyGameEvent>(strategyDeathFunc,*this,MONSTER_DATA[name].GetAIStrategy()));
|
||||||
}
|
}
|
||||||
|
@ -134,6 +134,8 @@ const void SaveFile::SaveGame(){
|
|||||||
saveFile["Game Time"].SetReal(game->GetRuntime());
|
saveFile["Game Time"].SetReal(game->GetRuntime());
|
||||||
saveFile["TravelingMerchant"].SetString(std::string(Merchant::GetCurrentTravelingMerchant().GetKeyName()));
|
saveFile["TravelingMerchant"].SetString(std::string(Merchant::GetCurrentTravelingMerchant().GetKeyName()));
|
||||||
|
|
||||||
|
saveFile["Achievement"]["KillCount"].SetInt(Unlock::GetKillCount());
|
||||||
|
|
||||||
#pragma region Save Keyboard/Controller mappings
|
#pragma region Save Keyboard/Controller mappings
|
||||||
//NOTE: We are shadowing code from InputKeyboardWindow! If at some point the retrival method for getting input displays changes, we likely will be changing the code here as well!
|
//NOTE: We are shadowing code from InputKeyboardWindow! If at some point the retrival method for getting input displays changes, we likely will be changing the code here as well!
|
||||||
//ALSO NOTE: The menu inputs are saved to the system file while gameplay inputs are per-character and saved to the character settings file!
|
//ALSO NOTE: The menu inputs are saved to the system file while gameplay inputs are per-character and saved to the character settings file!
|
||||||
@ -390,6 +392,12 @@ void SaveFile::LoadFile(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma region Achievement-related loading
|
||||||
|
if(loadFile.HasProperty("Achievement.KillCount")){
|
||||||
|
Unlock::SetKillCount(loadFile.GetProperty("Achievement.KillCount").GetInt());
|
||||||
|
}
|
||||||
|
#pragma endregion
|
||||||
|
|
||||||
GameState::ChangeState(States::OVERWORLD_MAP,0.5f);
|
GameState::ChangeState(States::OVERWORLD_MAP,0.5f);
|
||||||
}else{
|
}else{
|
||||||
LOG(std::format("WARNING! File {} does not exist for loading!","save_file_path"_S+std::format("save.{:04}",saveFileID)));
|
LOG(std::format("WARNING! File {} does not exist for loading!","save_file_path"_S+std::format("save.{:04}",saveFileID)));
|
||||||
|
@ -55,6 +55,8 @@ FULLY_DECKED_OUT
|
|||||||
|
|
||||||
Include a Reset Achievements button in Settings
|
Include a Reset Achievements button in Settings
|
||||||
|
|
||||||
============================================
|
|
||||||
|
|
||||||
|
|
||||||
|
============================================
|
||||||
|
Consider a "killed by player" / "marked by player" flag for monsters to determine if a player gets credit for a monster kill (for achievements)
|
||||||
Make another actions config file for the main build (The app # is different)
|
Make another actions config file for the main build (The app # is different)
|
@ -47,8 +47,11 @@ All rights reserved.
|
|||||||
INCLUDE_DATA
|
INCLUDE_DATA
|
||||||
|
|
||||||
std::set<std::string>Unlock::unlocks;
|
std::set<std::string>Unlock::unlocks;
|
||||||
|
int Unlock::monsterKillCount=0;
|
||||||
|
|
||||||
void Unlock::Initialize(){
|
void Unlock::Initialize(){
|
||||||
|
unlocks.clear();
|
||||||
|
monsterKillCount=0;
|
||||||
UnlockArea("WORLD_MAP");
|
UnlockArea("WORLD_MAP");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,4 +77,29 @@ bool Unlock::IsUnlocked(ConnectionPoint&cp){
|
|||||||
|
|
||||||
void Unlock::UnlockCurrentMap(){
|
void Unlock::UnlockCurrentMap(){
|
||||||
UnlockArea(State_OverworldMap::GetCurrentConnectionPoint().map);
|
UnlockArea(State_OverworldMap::GetCurrentConnectionPoint().map);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Unlock::IncreaseKillCount(){
|
||||||
|
monsterKillCount++;
|
||||||
|
if(SteamUserStats()){
|
||||||
|
datafile&killUnlocks=DATA.GetProperty("Achievement.Kill Unlocks");
|
||||||
|
for(auto&[key,size]:killUnlocks){
|
||||||
|
if(key.starts_with("Kill Monsters")){
|
||||||
|
int killRequirement=killUnlocks[key]["Monster Kill Count"].GetInt();
|
||||||
|
if(monsterKillCount-1<killRequirement&& //These two checks make sure we're actually passing the kill requirement and not just over the kill requirement immediately.
|
||||||
|
monsterKillCount==killRequirement){
|
||||||
|
SteamUserStats()->SetAchievement(killUnlocks[key]["API Name"].GetString().c_str());
|
||||||
|
SteamUserStats()->StoreStats();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const int Unlock::GetKillCount(){
|
||||||
|
return monsterKillCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Unlock::SetKillCount(int newKillCount){
|
||||||
|
monsterKillCount=newKillCount;
|
||||||
}
|
}
|
@ -45,6 +45,8 @@ class Unlock{
|
|||||||
friend class SaveFile;
|
friend class SaveFile;
|
||||||
static std::set<std::string>unlocks;
|
static std::set<std::string>unlocks;
|
||||||
static void Initialize();
|
static void Initialize();
|
||||||
|
static int monsterKillCount;
|
||||||
|
static void SetKillCount(int newKillCount);
|
||||||
public:
|
public:
|
||||||
//Provide a map's actual name to trigger unlocks for all connected areas. You can get the current map you are on via State_OverworldMap::GetCurrentConnectionPoint().map
|
//Provide a map's actual name to trigger unlocks for all connected areas. You can get the current map you are on via State_OverworldMap::GetCurrentConnectionPoint().map
|
||||||
static void UnlockArea(std::string mapName);
|
static void UnlockArea(std::string mapName);
|
||||||
@ -52,4 +54,6 @@ public:
|
|||||||
static void UnlockCurrentMap();
|
static void UnlockCurrentMap();
|
||||||
static bool IsUnlocked(std::string mapName);
|
static bool IsUnlocked(std::string mapName);
|
||||||
static bool IsUnlocked(ConnectionPoint&cp);
|
static bool IsUnlocked(ConnectionPoint&cp);
|
||||||
|
static void IncreaseKillCount();
|
||||||
|
static const int GetKillCount();
|
||||||
};
|
};
|
@ -39,7 +39,7 @@ All rights reserved.
|
|||||||
#define VERSION_MAJOR 1
|
#define VERSION_MAJOR 1
|
||||||
#define VERSION_MINOR 0
|
#define VERSION_MINOR 0
|
||||||
#define VERSION_PATCH 0
|
#define VERSION_PATCH 0
|
||||||
#define VERSION_BUILD 8524
|
#define VERSION_BUILD 8530
|
||||||
|
|
||||||
#define stringify(a) stringify_(a)
|
#define stringify(a) stringify_(a)
|
||||||
#define stringify_(a) #a
|
#define stringify_(a) #a
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<map version="1.10" tiledversion="1.10.2" class="Map" orientation="orthogonal" renderorder="right-down" width="205" height="205" tilewidth="24" tileheight="24" infinite="0" backgroundcolor="#475500" nextlayerid="11" nextobjectid="181">
|
<map version="1.10" tiledversion="1.10.2" class="Map" orientation="orthogonal" renderorder="right-down" width="205" height="205" tilewidth="24" tileheight="24" infinite="0" backgroundcolor="#475500" nextlayerid="11" nextobjectid="393">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="Backdrop" propertytype="Backdrop" value="forest"/>
|
<property name="Backdrop" propertytype="Backdrop" value="forest"/>
|
||||||
<property name="Background Music" propertytype="BGM" value="foresty1_1"/>
|
<property name="Background Music" propertytype="BGM" value="foresty1_1"/>
|
||||||
|
@ -21,6 +21,7 @@ Achievement
|
|||||||
}
|
}
|
||||||
Kill Unlocks
|
Kill Unlocks
|
||||||
{
|
{
|
||||||
|
# Achievements that start with "Kill Monsters" will be checked when a monster is killed.
|
||||||
Kill Monsters 1
|
Kill Monsters 1
|
||||||
{
|
{
|
||||||
API Name = "KILL_SLIME_1"
|
API Name = "KILL_SLIME_1"
|
||||||
@ -36,6 +37,10 @@ Achievement
|
|||||||
API Name = "KILL_SLIME_3"
|
API Name = "KILL_SLIME_3"
|
||||||
Monster Kill Count = 1000
|
Monster Kill Count = 1000
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##################################
|
||||||
|
|
||||||
|
|
||||||
Slime King
|
Slime King
|
||||||
{
|
{
|
||||||
API Name = "SLIME_KING"
|
API Name = "SLIME_KING"
|
||||||
|
@ -151,78 +151,99 @@ Equipment
|
|||||||
{
|
{
|
||||||
# When this crafting recipe is available.
|
# When this crafting recipe is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Green Slime Remains,5
|
||||||
|
|
||||||
Gold = 1
|
Gold = 5
|
||||||
|
|
||||||
Level[1]
|
Level[1]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Green Slime Remains,7
|
||||||
|
|
||||||
Gold = 1
|
Gold = 12
|
||||||
}
|
}
|
||||||
Level[2]
|
Level[2]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Wolf Skin,1
|
||||||
|
Item[1] = Red Slime Remains,1
|
||||||
|
Item[2] = Blue Slime Remains,1
|
||||||
|
|
||||||
Gold = 1
|
Gold = 18
|
||||||
}
|
}
|
||||||
Level[3]
|
Level[3]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Red Slime Remains,3
|
||||||
|
Item[1] = Green Slime Remains,6
|
||||||
|
|
||||||
Gold = 1
|
Gold = 24
|
||||||
}
|
}
|
||||||
Level[4]
|
Level[4]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Blue Slime Remains,3
|
||||||
|
Item[1] = Green Slime Remains,7
|
||||||
|
|
||||||
Gold = 1
|
Gold = 32
|
||||||
}
|
}
|
||||||
Level[5]
|
Level[5]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Wolf Skin,1
|
||||||
|
Item[1] = Red Slime Remains,4
|
||||||
|
|
||||||
Gold = 1
|
Gold = 40
|
||||||
}
|
}
|
||||||
Level[6]
|
Level[6]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Yellow Slime Remains,1
|
||||||
|
Item[1] = Red Slime Remains,6
|
||||||
|
|
||||||
Gold = 1
|
Gold = 50
|
||||||
}
|
}
|
||||||
Level[7]
|
Level[7]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Wolf Skin,1
|
||||||
|
Item[1] = Yellow Slime Remains,2
|
||||||
|
|
||||||
Gold = 1
|
Gold = 65
|
||||||
}
|
}
|
||||||
Level[8]
|
Level[8]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Red Slime Remains,8
|
||||||
|
Item[1] = Green Slime Remains,4
|
||||||
|
|
||||||
Gold = 1
|
Gold = 80
|
||||||
}
|
}
|
||||||
Level[9]
|
Level[9]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Wolf Skin,2
|
||||||
|
Item[1] = Yellow Slime Remains,3
|
||||||
|
|
||||||
Gold = 1
|
Gold = 100
|
||||||
}
|
}
|
||||||
Level[10]
|
Level[10]
|
||||||
{
|
{
|
||||||
# When this enhancement is available.
|
# When this enhancement is available.
|
||||||
AvailableChapter = 1
|
AvailableChapter = 1
|
||||||
|
Item[0] = Green Gemstone,1
|
||||||
|
Item[1] = Wolf Skin,1
|
||||||
|
|
||||||
Gold = 1
|
Gold = 150
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user