mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-10-10 00:13:42 -04:00
Cleaned up SkillTemplateService
This commit is contained in:
@@ -65,13 +65,27 @@ import services.objects.StaticItemService;
|
||||
public final class SkillTemplateService extends Service {
|
||||
|
||||
private final Map<String, String[]> skillTemplates;
|
||||
private final Map<String, String[]> badgeNames;
|
||||
private Map<String, RoadmapReward> rewards;
|
||||
private DatatableData rewardsTable;
|
||||
|
||||
public SkillTemplateService() {
|
||||
skillTemplates = new HashMap<>();
|
||||
rewards = new HashMap<>();
|
||||
rewardsTable = (DatatableData) ClientFactory.getInfoFromFile("datatables/roadmap/item_rewards.iff");
|
||||
|
||||
badgeNames = new HashMap<>();
|
||||
badgeNames.put("bounty_hunter_1a", new String[]{"new_prof_bountyhunter_master"});
|
||||
badgeNames.put("commando_1a", new String[]{"new_prof_commando_master"});
|
||||
badgeNames.put("entertainer_1a", new String[]{"new_prof_social_entertainer_master"});
|
||||
badgeNames.put("force_sensitive_1a",new String[]{"new_prof_jedi_master"});
|
||||
badgeNames.put("medic_1a", new String[]{"new_prof_medic_master"});
|
||||
badgeNames.put("officer_1a", new String[]{"new_prof_officer_master"});
|
||||
badgeNames.put("smuggler_1a", new String[]{"new_prof_smuggler_master"});
|
||||
badgeNames.put("spy_1a", new String[]{"new_prof_spy_master"});
|
||||
// All traders become Master Merchants and Master Artisans
|
||||
badgeNames.put("trader_0a", new String[]{"new_prof_crafting_merchant_master", "new_prof_crafting_artisan_master", "new_prof_crafting_chef_master", "new_prof_crafting_tailor_master"});
|
||||
badgeNames.put("trader_0b", new String[]{"new_prof_crafting_merchant_master", "new_prof_crafting_artisan_master", "new_prof_crafting_architect_master"});
|
||||
badgeNames.put("trader_0c", new String[]{"new_prof_crafting_merchant_master", "new_prof_crafting_artisan_master", "new_prof_crafting_armorsmith_master", "new_prof_crafting_weaponsmith_master"});
|
||||
badgeNames.put("trader_0d", new String[]{"new_prof_crafting_merchant_master", "new_prof_crafting_artisan_master", "new_prof_crafting_droidengineer_master"});
|
||||
|
||||
registerForIntent(LevelChangedIntent.class, lci -> handleLevelChangedIntent(lci));
|
||||
}
|
||||
|
||||
@@ -86,7 +100,8 @@ public final class SkillTemplateService extends Service {
|
||||
skillTemplates.put(profession, templates);
|
||||
}
|
||||
|
||||
loadRewardItemsIff();
|
||||
DatatableData rewardsTable = (DatatableData) ClientFactory.getInfoFromFile("datatables/roadmap/item_rewards.iff");
|
||||
rewards = loadRewardItemsIff(rewardsTable);
|
||||
|
||||
return super.initialize();
|
||||
}
|
||||
@@ -125,14 +140,27 @@ public final class SkillTemplateService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
if (skillUp) {
|
||||
creatureObject.sendObserversAndSelf(new PlayClientEffectObjectMessage("clienteffect/skill_granted.cef", "", objectId));
|
||||
player.sendPacket(new ShowFlyText(objectId, new StringId("cbt_spam", "skill_up"), Scale.LARGEST, new RGB(Color.GREEN)));
|
||||
player.sendPacket(new PlayMusicMessage(0, "sound/music_acq_bountyhunter.snd", 1, false));
|
||||
} else {
|
||||
creatureObject.sendObserversAndSelf(new PlayClientEffectObjectMessage("clienteffect/level_granted.cef", "", objectId));
|
||||
player.sendPacket(new ShowFlyText(objectId, new StringId("cbt_spam", "level_up"), Scale.LARGEST, new RGB(Color.BLUE)));
|
||||
String effectFile;
|
||||
String flyText;
|
||||
RGB flyTextColor;
|
||||
|
||||
if (skillUp)
|
||||
{
|
||||
effectFile = "clienteffect/skill_granted.cef";
|
||||
flyText = "skill_up";
|
||||
flyTextColor = new RGB(Color.GREEN);
|
||||
}
|
||||
else
|
||||
{
|
||||
effectFile = "clienteffect/level_granted.cef";
|
||||
flyText = "level_up";
|
||||
flyTextColor = new RGB(Color.BLUE);
|
||||
}
|
||||
|
||||
creatureObject.sendObserversAndSelf(new PlayClientEffectObjectMessage(effectFile, "", objectId));
|
||||
player.sendPacket(new ShowFlyText(objectId, new StringId("cbt_spam", flyText), Scale.LARGEST, flyTextColor));
|
||||
|
||||
if (skillUp) player.sendPacket(new PlayMusicMessage(0, "sound/music_acq_bountyhunter.snd", 1, false));
|
||||
}
|
||||
|
||||
private void giveRewardItems(CreatureObject creatureObject, String skillName) {
|
||||
@@ -173,7 +201,9 @@ public final class SkillTemplateService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private void loadRewardItemsIff() {
|
||||
private HashMap<String, RoadmapReward> loadRewardItemsIff(DatatableData rewardsTable) {
|
||||
HashMap<String, RoadmapReward> rewards = new HashMap<>();
|
||||
|
||||
for (int row = 0; row < rewardsTable.getRowCount(); row++) {
|
||||
String roadmapTemplate = rewardsTable.getCell(row, 0).toString();
|
||||
String roadmapSkillName = rewardsTable.getCell(row, 1).toString();
|
||||
@@ -185,58 +215,24 @@ public final class SkillTemplateService extends Service {
|
||||
|
||||
rewards.put(roadmapSkillName, new RoadmapReward(roadmapTemplate, roadmapSkillName, appearanceName, stringId, itemDefault, itemWookiee, itemIthorian));
|
||||
}
|
||||
|
||||
return rewards;
|
||||
}
|
||||
|
||||
private void grantMasteryBadge(CreatureObject creature, String profession, String skillName) {
|
||||
Log.d("grantMasteryBadge - skillName: %s", skillName);
|
||||
if (skillName.endsWith("_phase4_master")) {
|
||||
if (profession.startsWith("trader_0")) {
|
||||
// All traders become Master Merchants and Master Artisans
|
||||
new GrantBadgeIntent(creature, "new_prof_crafting_merchant_master").broadcast();
|
||||
new GrantBadgeIntent(creature, "new_prof_crafting_artisan_master").broadcast();
|
||||
if (badgeNames.containsKey(profession)) {
|
||||
String[] badgeList = badgeNames.get(profession);
|
||||
for (String badgeName : badgeList)
|
||||
{
|
||||
new GrantBadgeIntent(creature, badgeName).broadcast();
|
||||
Log.d("granting badge %s to %s", badgeName, creature);
|
||||
}
|
||||
}
|
||||
|
||||
switch (profession) {
|
||||
case "bounty_hunter_1a":
|
||||
new GrantBadgeIntent(creature, "new_prof_bountyhunter_master").broadcast();
|
||||
break;
|
||||
case "commando_1a":
|
||||
new GrantBadgeIntent(creature, "new_prof_commando_master").broadcast();
|
||||
break;
|
||||
case "entertainer_1a":
|
||||
new GrantBadgeIntent(creature, "new_prof_social_entertainer_master").broadcast();
|
||||
break;
|
||||
case "force_sensitive_1a":
|
||||
new GrantBadgeIntent(creature, "new_prof_jedi_master").broadcast();
|
||||
break;
|
||||
case "medic_1a":
|
||||
new GrantBadgeIntent(creature, "new_prof_medic_master").broadcast();
|
||||
break;
|
||||
case "officer_1a":
|
||||
new GrantBadgeIntent(creature, "new_prof_officer_master").broadcast();
|
||||
break;
|
||||
case "smuggler_1a":
|
||||
new GrantBadgeIntent(creature, "new_prof_smuggler_master").broadcast();
|
||||
break;
|
||||
case "spy_1a":
|
||||
new GrantBadgeIntent(creature, "new_prof_spy_master").broadcast();
|
||||
break;
|
||||
case "trader_0a":
|
||||
new GrantBadgeIntent(creature, "new_prof_crafting_chef_master").broadcast();
|
||||
new GrantBadgeIntent(creature, "new_prof_crafting_tailor_master").broadcast();
|
||||
break;
|
||||
case "trader_0b":
|
||||
new GrantBadgeIntent(creature, "new_prof_crafting_architect_master").broadcast();
|
||||
break;
|
||||
case "trader_0c":
|
||||
new GrantBadgeIntent(creature, "new_prof_crafting_armorsmith_master").broadcast();
|
||||
new GrantBadgeIntent(creature, "new_prof_crafting_weaponsmith_master").broadcast();
|
||||
break;
|
||||
case "trader_0d":
|
||||
new GrantBadgeIntent(creature, "new_prof_crafting_droidengineer_master").broadcast();
|
||||
break;
|
||||
default:
|
||||
Log.e("%s could not be granted a mastery badge because their profession %s is unrecognised", creature, profession);
|
||||
break;
|
||||
else
|
||||
{
|
||||
Log.e("%s could not be granted a mastery badge because their profession %s is unrecognised", creature, profession);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user