2011-07-18 22:06:02 +02:00
|
|
|
package com.massivecraft.factions.struct;
|
2011-02-06 13:36:11 +01:00
|
|
|
|
2014-04-04 20:55:21 +02:00
|
|
|
import com.massivecraft.factions.Conf;
|
2011-02-06 13:36:11 +01:00
|
|
|
import org.bukkit.ChatColor;
|
2011-07-18 22:06:02 +02:00
|
|
|
|
2011-02-06 13:36:11 +01:00
|
|
|
|
2014-04-04 20:55:21 +02:00
|
|
|
public enum Relation {
|
|
|
|
MEMBER(3, "member"),
|
|
|
|
ALLY(2, "ally"),
|
|
|
|
NEUTRAL(1, "neutral"),
|
|
|
|
ENEMY(0, "enemy");
|
|
|
|
|
|
|
|
public final int value;
|
|
|
|
public final String nicename;
|
|
|
|
|
|
|
|
private Relation(final int value, final String nicename) {
|
|
|
|
this.value = value;
|
|
|
|
this.nicename = nicename;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
return this.nicename;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isMember() {
|
|
|
|
return this == MEMBER;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isAlly() {
|
|
|
|
return this == ALLY;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isNeutral() {
|
|
|
|
return this == NEUTRAL;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isEnemy() {
|
|
|
|
return this == ENEMY;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isAtLeast(Relation relation) {
|
|
|
|
return this.value >= relation.value;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isAtMost(Relation relation) {
|
|
|
|
return this.value <= relation.value;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ChatColor getColor() {
|
2014-07-01 21:49:42 +02:00
|
|
|
if (this == MEMBER) { return Conf.colorMember; }
|
|
|
|
else if (this == ALLY) { return Conf.colorAlly; }
|
|
|
|
else if (this == NEUTRAL) { return Conf.colorNeutral; }
|
|
|
|
else { return Conf.colorEnemy; }
|
2014-04-04 20:55:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// return appropriate Conf setting for DenyBuild based on this relation and their online status
|
|
|
|
public boolean confDenyBuild(boolean online) {
|
2014-07-01 21:49:42 +02:00
|
|
|
if (isMember()) { return false; }
|
2014-04-04 20:55:21 +02:00
|
|
|
|
|
|
|
if (online) {
|
2014-07-01 21:49:42 +02:00
|
|
|
if (isEnemy()) { return Conf.territoryEnemyDenyBuild; }
|
|
|
|
else if (isAlly()) { return Conf.territoryAllyDenyBuild; }
|
|
|
|
else { return Conf.territoryDenyBuild; }
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if (isEnemy()) { return Conf.territoryEnemyDenyBuildWhenOffline; }
|
|
|
|
else if (isAlly()) { return Conf.territoryAllyDenyBuildWhenOffline; }
|
|
|
|
else { return Conf.territoryDenyBuildWhenOffline; }
|
2014-04-04 20:55:21 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// return appropriate Conf setting for PainBuild based on this relation and their online status
|
|
|
|
public boolean confPainBuild(boolean online) {
|
2014-07-01 21:49:42 +02:00
|
|
|
if (isMember()) { return false; }
|
2014-04-04 20:55:21 +02:00
|
|
|
|
|
|
|
if (online) {
|
2014-07-01 21:49:42 +02:00
|
|
|
if (isEnemy()) { return Conf.territoryEnemyPainBuild; }
|
|
|
|
else if (isAlly()) { return Conf.territoryAllyPainBuild; }
|
|
|
|
else { return Conf.territoryPainBuild; }
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if (isEnemy()) { return Conf.territoryEnemyPainBuildWhenOffline; }
|
|
|
|
else if (isAlly()) { return Conf.territoryAllyPainBuildWhenOffline; }
|
|
|
|
else { return Conf.territoryPainBuildWhenOffline; }
|
2014-04-04 20:55:21 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// return appropriate Conf setting for DenyUseage based on this relation
|
|
|
|
public boolean confDenyUseage() {
|
2014-07-01 21:49:42 +02:00
|
|
|
if (isMember()) { return false; }
|
|
|
|
else if (isEnemy()) { return Conf.territoryEnemyDenyUseage; }
|
|
|
|
else if (isAlly()) { return Conf.territoryAllyDenyUseage; }
|
|
|
|
else { return Conf.territoryDenyUseage; }
|
2014-04-04 20:55:21 +02:00
|
|
|
}
|
2011-02-06 13:36:11 +01:00
|
|
|
|
2014-04-04 20:55:21 +02:00
|
|
|
public double getRelationCost() {
|
2014-07-01 21:49:42 +02:00
|
|
|
if (isEnemy()) { return Conf.econCostEnemy; }
|
|
|
|
else if (isAlly()) { return Conf.econCostAlly; }
|
|
|
|
else { return Conf.econCostNeutral; }
|
2014-04-04 20:55:21 +02:00
|
|
|
}
|
2011-02-06 13:36:11 +01:00
|
|
|
}
|