v2.1.3: added support for handling removed talents
This commit is contained in:
+22
-7
@@ -76,6 +76,7 @@ import com.watabou.utils.Random;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
public enum Talent {
|
public enum Talent {
|
||||||
@@ -929,6 +930,12 @@ public enum Talent {
|
|||||||
bundle.put("replacements", replacementsBundle);
|
bundle.put("replacements", replacementsBundle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final HashSet<String> removedTalents = new HashSet<>();
|
||||||
|
static{
|
||||||
|
//v1.4.0
|
||||||
|
removedTalents.add("BERSERKING_STAMINA");
|
||||||
|
}
|
||||||
|
|
||||||
private static final HashMap<String, String> renamedTalents = new HashMap<>();
|
private static final HashMap<String, String> renamedTalents = new HashMap<>();
|
||||||
static{
|
static{
|
||||||
//v2.0.0
|
//v2.0.0
|
||||||
@@ -946,7 +953,13 @@ public enum Talent {
|
|||||||
String value = replacements.getString(key);
|
String value = replacements.getString(key);
|
||||||
if (renamedTalents.containsKey(key)) key = renamedTalents.get(key);
|
if (renamedTalents.containsKey(key)) key = renamedTalents.get(key);
|
||||||
if (renamedTalents.containsKey(value)) value = renamedTalents.get(value);
|
if (renamedTalents.containsKey(value)) value = renamedTalents.get(value);
|
||||||
hero.metamorphedTalents.put(Talent.valueOf(key), Talent.valueOf(value));
|
if (!removedTalents.contains(key) && !removedTalents.contains(value)){
|
||||||
|
try {
|
||||||
|
hero.metamorphedTalents.put(Talent.valueOf(key), Talent.valueOf(value));
|
||||||
|
} catch (Exception e) {
|
||||||
|
ShatteredPixelDungeon.reportException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -962,13 +975,15 @@ public enum Talent {
|
|||||||
for (String tName : tierBundle.getKeys()){
|
for (String tName : tierBundle.getKeys()){
|
||||||
int points = tierBundle.getInt(tName);
|
int points = tierBundle.getInt(tName);
|
||||||
if (renamedTalents.containsKey(tName)) tName = renamedTalents.get(tName);
|
if (renamedTalents.containsKey(tName)) tName = renamedTalents.get(tName);
|
||||||
try {
|
if (!removedTalents.contains(tName)) {
|
||||||
Talent talent = Talent.valueOf(tName);
|
try {
|
||||||
if (tier.containsKey(talent)) {
|
Talent talent = Talent.valueOf(tName);
|
||||||
tier.put(talent, Math.min(points, talent.maxPoints()));
|
if (tier.containsKey(talent)) {
|
||||||
|
tier.put(talent, Math.min(points, talent.maxPoints()));
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
ShatteredPixelDungeon.reportException(e);
|
||||||
}
|
}
|
||||||
} catch (Exception e){
|
|
||||||
ShatteredPixelDungeon.reportException(e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user