Add RoomDecoFurniTypeCount achievement

This commit is contained in:
Alejandro 2019-05-26 22:33:51 +03:00
parent 8b6c18c11d
commit 3506f049ce
8 changed files with 37 additions and 0 deletions

View File

@ -40,5 +40,7 @@ public class InteractionBlackHole extends InteractionGate {
AchievementManager.progressAchievement(this.getUserId(), holeCountAchievement, holeDifference);
}
}
super.onPlace(room);
}
}

View File

@ -55,6 +55,8 @@ public class InteractionMoodLight extends HabboItem {
}
}
}
super.onPlace(room);
}
@Override

View File

@ -59,6 +59,7 @@ public class InteractionWater extends InteractionDefault {
@Override
public void onPlace(Room room) {
this.recalculate(room);
super.onPlace(room);
}
public void refreshWaters(Room room) {

View File

@ -25,6 +25,7 @@ public class InteractionWaterItem extends InteractionDefault {
@Override
public void onPlace(Room room) {
this.update();
super.onPlace(room);
}
@Override

View File

@ -143,6 +143,7 @@ public class InteractionWiredHighscore extends HabboItem {
@Override
public void onPlace(Room room) {
this.reloadData(room);
super.onPlace(room);
}
@Override

View File

@ -138,6 +138,8 @@ public abstract class InteractionGameTimer extends HabboItem implements Runnable
this.setExtradata(this.timeNow + "\t" + this.baseTime);
room.updateItem(this);
super.onPlace(room);
}
@Override

View File

@ -3994,6 +3994,16 @@ public class Room implements Comparable<Room>, ISerialize, Runnable {
return this.furniOwnerCount.get(userId);
}
public int getUserUniqueFurniCount(int userId) {
THashSet<Item> items = new THashSet<>();
for (HabboItem item : this.roomItems.valueCollection()) {
if (!items.contains(item.getBaseItem()) && item.getUserId() == userId) items.add(item.getBaseItem());
}
return items.size();
}
public void ejectUserFurni(int userId) {
THashSet<HabboItem> items = new THashSet<>();

View File

@ -323,6 +323,24 @@ public abstract class HabboItem implements Runnable, IEventTriggers {
AchievementManager.progressAchievement(this.getUserId(), roomDecoAchievement, difference);
}
}
Achievement roomDecoUniqueAchievement = Emulator.getGameEnvironment().getAchievementManager().getAchievement("RoomDecoFurniTypeCount");
int uniqueFurniCollecterProgress;
if (owner == null) {
uniqueFurniCollecterProgress = AchievementManager.getAchievementProgressForHabbo(this.getUserId(), roomDecoUniqueAchievement);
} else {
uniqueFurniCollecterProgress = owner.getHabboStats().getAchievementProgress(roomDecoUniqueAchievement);
}
int uniqueDifference = room.getUserUniqueFurniCount(this.getUserId()) - uniqueFurniCollecterProgress;
if (uniqueDifference > 0) {
if (owner != null) {
AchievementManager.progressAchievement(owner, roomDecoUniqueAchievement, uniqueDifference);
} else {
AchievementManager.progressAchievement(this.getUserId(), roomDecoUniqueAchievement, uniqueDifference);
}
}
}
public void onPickUp(Room room) {