Merge pull request #628 from HabitRPG/avatar_transformations

Show avatar transformations
This commit is contained in:
Phillip Thelen 2016-09-20 13:22:28 +02:00 committed by GitHub
commit 6c86a83023
5 changed files with 124 additions and 51 deletions

View file

@ -0,0 +1,3 @@
ALTER TABLE Buffs ADD COLUMN seafoam bool;
ALTER TABLE Buffs ADD COLUMN spookySparkles bool;
ALTER TABLE Buffs ADD COLUMN shinySeed bool;

View file

@ -7,5 +7,5 @@ public class HabitDatabase {
public static final String NAME = "Habitica"; public static final String NAME = "Habitica";
public static final int VERSION = 26; public static final int VERSION = 27;
} }

View file

@ -248,6 +248,7 @@ public class AvatarView extends View {
case HAIR_MUSTACHE: case HAIR_MUSTACHE:
case HAIR_BEARD: case HAIR_BEARD:
case EYEWEAR: case EYEWEAR:
case VISUAL_BUFF:
case HEAD: case HEAD:
case HEAD_ACCESSORY: case HEAD_ACCESSORY:
case HAIR_FLOWER: case HAIR_FLOWER:
@ -451,14 +452,15 @@ public class AvatarView extends View {
HAIR_MUSTACHE(11), HAIR_MUSTACHE(11),
HAIR_BEARD(12), HAIR_BEARD(12),
EYEWEAR(13), EYEWEAR(13),
HEAD(14), VISUAL_BUFF(14),
HEAD_ACCESSORY(15), HEAD(15),
HAIR_FLOWER(16), HEAD_ACCESSORY(16),
SHIELD(17), HAIR_FLOWER(17),
WEAPON(18), SHIELD(18),
MOUNT_HEAD(19), WEAPON(19),
ZZZ(20), MOUNT_HEAD(20),
PET(21); ZZZ(21),
PET(22);
final int order; final int order;

View file

@ -16,6 +16,15 @@ public class Buffs extends BasicStats {
@Column @Column
private Boolean streaks; private Boolean streaks;
@Column
private Boolean seafoam;
@Column
private Boolean spookySparkles;
@Column
private Boolean shinySeed;
public Buffs() { public Buffs() {
this(false, false); this(false, false);
} }
@ -33,6 +42,30 @@ public class Buffs extends BasicStats {
this.snowball = snowball; this.snowball = snowball;
} }
public Boolean getSeafoam() {
return seafoam != null ? seafoam : Boolean.FALSE;
}
public void setSeafoam(Boolean seafoam) {
this.seafoam = seafoam;
}
public Boolean getSpookySparkles() {
return spookySparkles != null ? spookySparkles : Boolean.FALSE;
}
public void setSpookySparkles(Boolean spookySparkles) {
this.spookySparkles = spookySparkles;
}
public Boolean getShinySeed() {
return shinySeed != null ? shinySeed : Boolean.FALSE;
}
public void setShinySeed(Boolean shinySeed) {
this.shinySeed = shinySeed;
}
public Boolean getStreaks() { public Boolean getStreaks() {
return streaks != null ? streaks : Boolean.FALSE; return streaks != null ? streaks : Boolean.FALSE;
} }

View file

@ -440,58 +440,93 @@ public class HabitRPGUser extends BaseModel {
Preferences prefs = getPreferences(); Preferences prefs = getPreferences();
Outfit outfit = (prefs.getCostume()) ? getItems().getGear().getCostume() : getItems().getGear().getEquipped(); Outfit outfit = (prefs.getCostume()) ? getItems().getGear().getCostume() : getItems().getGear().getEquipped();
if (!TextUtils.isEmpty(prefs.getChair())) { boolean hasVisualBuffs = false;
layerMap.put(AvatarView.LayerType.CHAIR, prefs.getChair());
}
if (outfit != null) { if(stats != null && stats.getBuffs() != null){
if (!TextUtils.isEmpty(outfit.getBack())) { Buffs buffs = stats.getBuffs();
layerMap.put(AvatarView.LayerType.BACK, outfit.getBack());
if(buffs.getSnowball()){
layerMap.put(AvatarView.LayerType.VISUAL_BUFF, "snowman");
hasVisualBuffs = true;
} }
if (outfit.isAvailable(outfit.getArmor())) {
layerMap.put(AvatarView.LayerType.ARMOR, prefs.getSize() + "_" + outfit.getArmor()); if(buffs.getSeafoam()){
layerMap.put(AvatarView.LayerType.VISUAL_BUFF, "seafoam_star");
hasVisualBuffs = true;
} }
if (outfit.isAvailable(outfit.getBody())) {
layerMap.put(AvatarView.LayerType.BODY, outfit.getBody()); if(buffs.getShinySeed()){
layerMap.put(AvatarView.LayerType.VISUAL_BUFF, "avatar_floral_"+stats.get_class());
hasVisualBuffs = true;
} }
if (outfit.isAvailable(outfit.getEyeWear())) {
layerMap.put(AvatarView.LayerType.EYEWEAR, outfit.getEyeWear()); if(buffs.getSpookySparkles()){
} layerMap.put(AvatarView.LayerType.VISUAL_BUFF, "ghost");
if (outfit.isAvailable(outfit.getHead())) { hasVisualBuffs = true;
layerMap.put(AvatarView.LayerType.HEAD, outfit.getHead());
}
if (outfit.isAvailable(outfit.getHeadAccessory())) {
layerMap.put(AvatarView.LayerType.HEAD_ACCESSORY, outfit.getHeadAccessory());
}
if (outfit.isAvailable(outfit.getShield())) {
layerMap.put(AvatarView.LayerType.SHIELD, outfit.getShield());
}
if (outfit.isAvailable(outfit.getWeapon())) {
layerMap.put(AvatarView.LayerType.WEAPON, outfit.getWeapon());
} }
} }
layerMap.put(AvatarView.LayerType.SKIN, "skin_" + prefs.getSkin() + ((prefs.getSleep()) ? "_sleep" : "")); if(!hasVisualBuffs) {
layerMap.put(AvatarView.LayerType.SHIRT, prefs.getSize() + "_shirt_" + prefs.getShirt()); if (!TextUtils.isEmpty(prefs.getChair())) {
layerMap.put(AvatarView.LayerType.HEAD_0, "head_0"); layerMap.put(AvatarView.LayerType.CHAIR, prefs.getChair());
}
Hair hair = prefs.getHair(); if (outfit != null) {
if (hair != null) { if (!TextUtils.isEmpty(outfit.getBack())) {
String hairColor = hair.getColor(); layerMap.put(AvatarView.LayerType.BACK, outfit.getBack());
}
if (outfit.isAvailable(outfit.getArmor())) {
layerMap.put(AvatarView.LayerType.ARMOR, prefs.getSize() + "_" + outfit.getArmor());
}
if (outfit.isAvailable(outfit.getBody())) {
layerMap.put(AvatarView.LayerType.BODY, outfit.getBody());
}
if (outfit.isAvailable(outfit.getEyeWear())) {
layerMap.put(AvatarView.LayerType.EYEWEAR, outfit.getEyeWear());
}
if (outfit.isAvailable(outfit.getHead())) {
layerMap.put(AvatarView.LayerType.HEAD, outfit.getHead());
}
if (outfit.isAvailable(outfit.getHeadAccessory())) {
layerMap.put(AvatarView.LayerType.HEAD_ACCESSORY, outfit.getHeadAccessory());
}
if (outfit.isAvailable(outfit.getShield())) {
layerMap.put(AvatarView.LayerType.SHIELD, outfit.getShield());
}
if (outfit.isAvailable(outfit.getWeapon())) {
layerMap.put(AvatarView.LayerType.WEAPON, outfit.getWeapon());
}
}
if (hair.isAvailable(hair.getBase())) { layerMap.put(AvatarView.LayerType.SKIN, "skin_" + prefs.getSkin() + ((prefs.getSleep()) ? "_sleep" : ""));
layerMap.put(AvatarView.LayerType.HAIR_BASE, "hair_base_" + hair.getBase() + "_" + hairColor); layerMap.put(AvatarView.LayerType.SHIRT, prefs.getSize() + "_shirt_" + prefs.getShirt());
layerMap.put(AvatarView.LayerType.HEAD_0, "head_0");
Hair hair = prefs.getHair();
if (hair != null) {
String hairColor = hair.getColor();
if (hair.isAvailable(hair.getBase())) {
layerMap.put(AvatarView.LayerType.HAIR_BASE, "hair_base_" + hair.getBase() + "_" + hairColor);
}
if (hair.isAvailable(hair.getBangs())) {
layerMap.put(AvatarView.LayerType.HAIR_BANGS, "hair_bangs_" + hair.getBangs() + "_" + hairColor);
}
if (hair.isAvailable(hair.getMustache())) {
layerMap.put(AvatarView.LayerType.HAIR_MUSTACHE, "hair_mustache_" + hair.getMustache() + "_" + hairColor);
}
if (hair.isAvailable(hair.getBeard())) {
layerMap.put(AvatarView.LayerType.HAIR_BEARD, "hair_beard_" + hair.getBeard() + "_" + hairColor);
}
if (hair.isAvailable(hair.getFlower())) {
layerMap.put(AvatarView.LayerType.HAIR_FLOWER, "hair_flower_" + hair.getFlower());
}
} }
if (hair.isAvailable(hair.getBangs())) { } else {
layerMap.put(AvatarView.LayerType.HAIR_BANGS, "hair_bangs_" + hair.getBangs() + "_" + hairColor); Hair hair = prefs.getHair();
}
if (hair.isAvailable(hair.getMustache())) { // Show flower all the time!
layerMap.put(AvatarView.LayerType.HAIR_MUSTACHE, "hair_mustache_" + hair.getMustache() + "_" + hairColor); if (hair != null && hair.isAvailable(hair.getFlower())) {
}
if (hair.isAvailable(hair.getBeard())) {
layerMap.put(AvatarView.LayerType.HAIR_BEARD, "hair_beard_" + hair.getBeard() + "_" + hairColor);
}
if (hair.isAvailable(hair.getFlower())) {
layerMap.put(AvatarView.LayerType.HAIR_FLOWER, "hair_flower_" + hair.getFlower()); layerMap.put(AvatarView.LayerType.HAIR_FLOWER, "hair_flower_" + hair.getFlower());
} }
} }