mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-04-15 20:26:32 +00:00
Merge pull request #628 from HabitRPG/avatar_transformations
Show avatar transformations
This commit is contained in:
commit
6c86a83023
5 changed files with 124 additions and 51 deletions
3
Habitica/assets/migrations/Habitica/27.sql
Normal file
3
Habitica/assets/migrations/Habitica/27.sql
Normal 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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue