Implemented SetItems and UniqueItems priority for item images/sounds, resolves #27

This commit is contained in:
Collin Smith
2019-03-29 16:51:25 -07:00
parent 90c992899f
commit e818baaf61
3 changed files with 66 additions and 49 deletions

View File

@ -29,7 +29,7 @@ public class SetItems extends Excel<SetItems.Entry> {
@Column public String invfile; @Column public String invfile;
@Column public String flippyfile; @Column public String flippyfile;
@Column public String dropsound; @Column public String dropsound;
@Column public String dropsfxframe; @Column public int dropsfxframe;
@Column public String usesound; @Column public String usesound;
@Column(format = "cost mult") @Column(format = "cost mult")
public int cost_mult; public int cost_mult;

View File

@ -1,7 +1,5 @@
package com.riiablo.codec.excel; package com.riiablo.codec.excel;
import com.riiablo.codec.excel.Excel;
public class UniqueItems extends Excel<UniqueItems.Entry> { public class UniqueItems extends Excel<UniqueItems.Entry> {
public static class Entry extends Excel.Entry { public static class Entry extends Excel.Entry {
@Override @Override
@ -35,7 +33,7 @@ public class UniqueItems extends Excel<UniqueItems.Entry> {
@Column public String flippyfile; @Column public String flippyfile;
@Column public String invfile; @Column public String invfile;
@Column public String dropsound; @Column public String dropsound;
@Column public String dropsfxframe; @Column public int dropsfxframe;
@Column public String usesound; @Column public String usesound;
@Column public String prop1; @Column public String prop1;
@Column public int par1; @Column public int par1;

View File

@ -569,32 +569,26 @@ public class Item extends Actor implements Disposable {
} }
private String getInvFileName() { private String getInvFileName() {
if (pictureId >= 0) { if (isIdentified()) {
if (isIdentified() && quality == Quality.UNIQUE) { switch (quality) {
if (qualityId == 381) { // Annihilus case SET:
return "invmss"; SetItems.Entry setItem = (SetItems.Entry) qualityData;
} else if (qualityId == 400) { // Hellfire Torch if (!setItem.invfile.isEmpty()) return setItem.invfile;
return "invtrch"; break;
} case UNIQUE:
UniqueItems.Entry uniqueItem = (UniqueItems.Entry) qualityData;
if (!uniqueItem.invfile.isEmpty()) return uniqueItem.invfile;
break;
default:
// do nothing
} }
return typeEntry.InvGfx[pictureId];
}
switch (quality) {
case SET:
return !base.setinvfile.isEmpty()
? base.setinvfile
: base.invfile;
case UNIQUE:
return !base.uniqueinvfile.isEmpty()
? base.uniqueinvfile
: base.invfile;
default:
return base.invfile;
} }
return pictureId >= 0 ? typeEntry.InvGfx[pictureId] : base.invfile;
} }
public String getInvColor() { public String getInvColor() {
if (base.InvTrans == 0) return null; if (base.InvTrans == 0 || !isIdentified()) return null;
switch (quality) { switch (quality) {
case MAGIC: { case MAGIC: {
MagicAffix affix; MagicAffix affix;
@ -634,7 +628,7 @@ public class Item extends Actor implements Disposable {
} }
public String getCharColor() { public String getCharColor() {
if (base.Transform == 0) return null; if (base.Transform == 0 || !isIdentified()) return null;
switch (quality) { switch (quality) {
case MAGIC: { case MAGIC: {
MagicAffix affix; MagicAffix affix;
@ -674,11 +668,18 @@ public class Item extends Actor implements Disposable {
} }
public String getFlippyFile() { public String getFlippyFile() {
if (isIdentified() && quality == Quality.UNIQUE) { if (isIdentified()) {
if (qualityId == 381) { // Annihilus switch (quality) {
return findBase("mss").flippyfile; case SET:
} else if (qualityId == 400) { // Hellfire Torch SetItems.Entry setItem = (SetItems.Entry) qualityData;
return findBase("tch").flippyfile; if (!setItem.flippyfile.isEmpty()) return setItem.flippyfile;
break;
case UNIQUE:
UniqueItems.Entry uniqueItem = (UniqueItems.Entry) qualityData;
if (!uniqueItem.flippyfile.isEmpty()) return uniqueItem.flippyfile;
break;
default:
// do nothing
} }
} }
@ -686,11 +687,18 @@ public class Item extends Actor implements Disposable {
} }
public int getDropFxFrame() { public int getDropFxFrame() {
if (isIdentified() && quality == Quality.UNIQUE) { if (isIdentified()) {
if (qualityId == 381) { // Annihilus switch (quality) {
return findBase("mss").dropsfxframe; case SET:
} else if (qualityId == 400) { // Hellfire Torch SetItems.Entry setItem = (SetItems.Entry) qualityData;
return findBase("tch").dropsfxframe; if (setItem.dropsfxframe > 0) return setItem.dropsfxframe;
break;
case UNIQUE:
UniqueItems.Entry uniqueItem = (UniqueItems.Entry) qualityData;
if (uniqueItem.dropsfxframe > 0) return uniqueItem.dropsfxframe;
break;
default:
// do nothing
} }
} }
@ -698,11 +706,18 @@ public class Item extends Actor implements Disposable {
} }
public String getDropSound() { public String getDropSound() {
if (isIdentified() && quality == Quality.UNIQUE) { if (isIdentified()) {
if (qualityId == 381) { // Annihilus switch (quality) {
return "item_gem"; case SET:
} else if (qualityId == 400) { // Hellfire Torch SetItems.Entry setItem = (SetItems.Entry) qualityData;
return "item_gem"; if (!setItem.dropsound.isEmpty()) return setItem.dropsound;
break;
case UNIQUE:
UniqueItems.Entry uniqueItem = (UniqueItems.Entry) qualityData;
if (!uniqueItem.dropsound.isEmpty()) return uniqueItem.dropsound;
break;
default:
// do nothing
} }
} }
@ -710,16 +725,20 @@ public class Item extends Actor implements Disposable {
} }
public String getUseSound() { public String getUseSound() {
/* if (isIdentified()) {
// Neither are usable switch (quality) {
if (isIdentified() && quality == Quality.UNIQUE) { case SET:
if (qualityId == 381) { // Annihilus SetItems.Entry setItem = (SetItems.Entry) qualityData;
return "item_gem"; if (!setItem.usesound.isEmpty()) return setItem.usesound;
} else if (qualityId == 400) { // Hellfire Torch break;
return "item_gem"; case UNIQUE:
UniqueItems.Entry uniqueItem = (UniqueItems.Entry) qualityData;
if (!uniqueItem.usesound.isEmpty()) return uniqueItem.usesound;
break;
default:
// do nothing
} }
} }
*/
return base.usesound; return base.usesound;
} }