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
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));
|
|
}
|
|
|
|
}
|