2
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
3.1 KiB
Java

package com.zivilon.cinder_loe;
import lotr.common.LOTRLevelData;
import lotr.common.entity.LOTREntities;
import lotr.common.entity.npc.LOTRBannerBearer;
import lotr.common.entity.npc.LOTRHireableBase;
import lotr.common.entity.npc.LOTRUnitTradeEntry;
import lotr.common.fac.LOTRFaction;
import lotr.common.item.LOTRItemCoin;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.config.Configuration;
import java.io.File;
public class CinderUnitTradeEntry extends LOTRUnitTradeEntry {
public Class entityClass;
private String name;
private PledgeType pledgeType = PledgeType.NONE;
private String objectivename;
private static Configuration config;
private String extraInfo;
static {
config = new Configuration(new File("CinderLoE.cfg"));
config.load();
}
public CinderUnitTradeEntry(Class c, int cost, float alignment) {
super(c, cost, alignment);
this.entityClass = c; // Set entityClass to the passed class
if (LOTRBannerBearer.class.isAssignableFrom(this.entityClass)) {
this.setExtraInfo("Banner");
}
}
public CinderUnitTradeEntry(Class c, Class c1, String s, int cost, float alignment) {
super(c, cost, alignment);
this.entityClass = c; // Set entityClass to the passed class
this.mountClass = c1;
this.name = s;
}
public boolean isObjectiveComplete(String objective) {
return config.getBoolean(objective, Configuration.CATEGORY_GENERAL, false, "Set true if " + objective + " is complete");
}
@Override
public boolean hasRequiredCostAndAlignment(EntityPlayer entityplayer, LOTRHireableBase trader) {
int coins = LOTRItemCoin.getInventoryValue(entityplayer, false);
if (coins < this.getCost(entityplayer, trader)) {
return false;
}
LOTRFaction fac = trader.getFaction();
if (!this.pledgeType.canAcceptPlayer(entityplayer, fac)) {
return false;
}
if (objectivename != null && !isObjectiveComplete(objectivename)) {
return false;
}
float alignment = LOTRLevelData.getData(entityplayer).getAlignment(fac);
return alignment >= this.alignmentRequired;
}
public CinderUnitTradeEntry setObjective(String objective) {
this.objectivename = objective;
return this;
}
public String getFormattedExtraInfo() {
return StatCollector.translateToLocal((String) "lotr.unitinfo." + this.objectivename);
}
public LOTRUnitTradeEntry setExtraInfo(String s) {
this.extraInfo = s;
return this;
}
public boolean hasExtraInfo() {
return this.extraInfo != null;
}
public String getUnitTradeName() {
if (this.mountClass == null) {
String entityName = LOTREntities.getStringFromClass(this.entityClass);
return StatCollector.translateToLocal((String)("entity." + entityName + ".name"));
}
return StatCollector.translateToLocal((String)("lotr.unit." + this.name));
}
}