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

View file

@ -16,6 +16,15 @@ public class Buffs extends BasicStats {
@Column
private Boolean streaks;
@Column
private Boolean seafoam;
@Column
private Boolean spookySparkles;
@Column
private Boolean shinySeed;
public Buffs() {
this(false, false);
}
@ -33,6 +42,30 @@ public class Buffs extends BasicStats {
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() {
return streaks != null ? streaks : Boolean.FALSE;
}

View file

@ -440,58 +440,93 @@ public class HabitRPGUser extends BaseModel {
Preferences prefs = getPreferences();
Outfit outfit = (prefs.getCostume()) ? getItems().getGear().getCostume() : getItems().getGear().getEquipped();
if (!TextUtils.isEmpty(prefs.getChair())) {
layerMap.put(AvatarView.LayerType.CHAIR, prefs.getChair());
}
boolean hasVisualBuffs = false;
if (outfit != null) {
if (!TextUtils.isEmpty(outfit.getBack())) {
layerMap.put(AvatarView.LayerType.BACK, outfit.getBack());
if(stats != null && stats.getBuffs() != null){
Buffs buffs = stats.getBuffs();
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 (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(buffs.getSpookySparkles()){
layerMap.put(AvatarView.LayerType.VISUAL_BUFF, "ghost");
hasVisualBuffs = true;
}
}
layerMap.put(AvatarView.LayerType.SKIN, "skin_" + prefs.getSkin() + ((prefs.getSleep()) ? "_sleep" : ""));
layerMap.put(AvatarView.LayerType.SHIRT, prefs.getSize() + "_shirt_" + prefs.getShirt());
layerMap.put(AvatarView.LayerType.HEAD_0, "head_0");
if(!hasVisualBuffs) {
if (!TextUtils.isEmpty(prefs.getChair())) {
layerMap.put(AvatarView.LayerType.CHAIR, prefs.getChair());
}
Hair hair = prefs.getHair();
if (hair != null) {
String hairColor = hair.getColor();
if (outfit != null) {
if (!TextUtils.isEmpty(outfit.getBack())) {
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.HAIR_BASE, "hair_base_" + hair.getBase() + "_" + hairColor);
layerMap.put(AvatarView.LayerType.SKIN, "skin_" + prefs.getSkin() + ((prefs.getSleep()) ? "_sleep" : ""));
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())) {
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())) {
} else {
Hair hair = prefs.getHair();
// Show flower all the time!
if (hair != null && hair.isAvailable(hair.getFlower())) {
layerMap.put(AvatarView.LayerType.HAIR_FLOWER, "hair_flower_" + hair.getFlower());
}
}