Some refactoring and better messages
This commit is contained in:
parent
bb5a676430
commit
0c46809952
@ -171,10 +171,9 @@ public class Board
|
|||||||
int width = halfWidth * 2 + 1;
|
int width = halfWidth * 2 + 1;
|
||||||
int height = halfHeight * 2 + 1;
|
int height = halfHeight * 2 + 1;
|
||||||
|
|
||||||
/*if (Conf.showMapFactionKey)
|
//Make room for the list of tags
|
||||||
{
|
height--;
|
||||||
height--;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
Map<Faction, Character> fList = new HashMap<Faction, Character>();
|
Map<Faction, Character> fList = new HashMap<Faction, Character>();
|
||||||
int chrIdx = 0;
|
int chrIdx = 0;
|
||||||
@ -194,33 +193,17 @@ public class Board
|
|||||||
|
|
||||||
FLocation flocationHere = topLeft.getRelative(dx, dz);
|
FLocation flocationHere = topLeft.getRelative(dx, dz);
|
||||||
Faction factionHere = getFactionAt(flocationHere);
|
Faction factionHere = getFactionAt(flocationHere);
|
||||||
//Rel relation = faction.getRelationTo(factionHere);
|
|
||||||
if (factionHere.isNone())
|
if (factionHere.isNone())
|
||||||
{
|
{
|
||||||
row += ChatColor.GRAY+"-";
|
row += ChatColor.GRAY+"-";
|
||||||
}
|
}
|
||||||
else /*if
|
else
|
||||||
(
|
|
||||||
factionHere == faction
|
|
||||||
||
|
|
||||||
factionHere == factionLoc
|
|
||||||
||
|
|
||||||
relation.isAtLeast(Rel.ALLY)
|
|
||||||
||
|
|
||||||
(Conf.showNeutralFactionsOnMap && relation.equals(Rel.NEUTRAL))
|
|
||||||
||
|
|
||||||
(Conf.showEnemyFactionsOnMap && relation.equals(Rel.ENEMY))
|
|
||||||
)*/
|
|
||||||
{
|
{
|
||||||
if (!fList.containsKey(factionHere.getTag()))
|
if (!fList.containsKey(factionHere))
|
||||||
fList.put(factionHere, Conf.mapKeyChrs[chrIdx++]);
|
fList.put(factionHere, Conf.mapKeyChrs[chrIdx++]);
|
||||||
char tag = fList.get(factionHere);
|
char fchar = fList.get(factionHere);
|
||||||
row += factionHere.getColorTo(observer) + "" + tag;
|
row += factionHere.getColorTo(observer) + "" + fchar;
|
||||||
}
|
}
|
||||||
/*else
|
|
||||||
{
|
|
||||||
row += ChatColor.GRAY+"-";
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
ret.add(row);
|
ret.add(row);
|
||||||
}
|
}
|
||||||
@ -232,19 +215,14 @@ public class Board
|
|||||||
ret.set(1, asciiCompass.get(0)+ret.get(1).substring(3*3));
|
ret.set(1, asciiCompass.get(0)+ret.get(1).substring(3*3));
|
||||||
ret.set(2, asciiCompass.get(1)+ret.get(2).substring(3*3));
|
ret.set(2, asciiCompass.get(1)+ret.get(2).substring(3*3));
|
||||||
ret.set(3, asciiCompass.get(2)+ret.get(3).substring(3*3));
|
ret.set(3, asciiCompass.get(2)+ret.get(3).substring(3*3));
|
||||||
|
|
||||||
// Add the faction key
|
|
||||||
// TODO: relation color for them
|
|
||||||
//if (Conf.showMapFactionKey)
|
|
||||||
//{
|
|
||||||
|
|
||||||
String fRow = "";
|
String fRow = "";
|
||||||
for(Faction keyfaction : fList.keySet())
|
for(Faction keyfaction : fList.keySet())
|
||||||
{
|
{
|
||||||
fRow += String.format("%s%s: %s ", keyfaction.getColorTo(observer), fList.get(keyfaction), keyfaction.getTag());
|
fRow += ""+keyfaction.getColorTo(observer) + fList.get(keyfaction) + ": " + keyfaction.getTag() + " ";
|
||||||
}
|
}
|
||||||
|
fRow = fRow.trim();
|
||||||
ret.add(fRow);
|
ret.add(fRow);
|
||||||
//}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,8 @@ public class Conf
|
|||||||
public static double homesTeleportAllowedEnemyDistance = 32.0;
|
public static double homesTeleportAllowedEnemyDistance = 32.0;
|
||||||
public static boolean homesTeleportIgnoreEnemiesIfInOwnTerritory = true;
|
public static boolean homesTeleportIgnoreEnemiesIfInOwnTerritory = true;
|
||||||
|
|
||||||
public static boolean disablePVPBetweenNeutralFactions = false;
|
|
||||||
|
public static Rel friendlyFireFromRel = Rel.TRUCE;
|
||||||
public static boolean disablePVPForFactionlessPlayers = false;
|
public static boolean disablePVPForFactionlessPlayers = false;
|
||||||
public static boolean enablePVPAgainstFactionlessInAttackersLand = false;
|
public static boolean enablePVPAgainstFactionlessInAttackersLand = false;
|
||||||
|
|
||||||
@ -165,7 +166,6 @@ public class Conf
|
|||||||
public static double econClaimAdditionalMultiplier = 0.5;
|
public static double econClaimAdditionalMultiplier = 0.5;
|
||||||
public static double econClaimRefundMultiplier = 0.7;
|
public static double econClaimRefundMultiplier = 0.7;
|
||||||
public static double econCostCreate = 100.0;
|
public static double econCostCreate = 100.0;
|
||||||
public static double econCostOwner = 15.0;
|
|
||||||
public static double econCostSethome = 30.0;
|
public static double econCostSethome = 30.0;
|
||||||
public static double econCostJoin = 0.0;
|
public static double econCostJoin = 0.0;
|
||||||
public static double econCostLeave = 0.0;
|
public static double econCostLeave = 0.0;
|
||||||
@ -181,9 +181,9 @@ public class Conf
|
|||||||
public static double econCostShow = 0.0;
|
public static double econCostShow = 0.0;
|
||||||
public static double econCostOpen = 0.0;
|
public static double econCostOpen = 0.0;
|
||||||
public static double econCostAlly = 0.0;
|
public static double econCostAlly = 0.0;
|
||||||
public static double econCostEnemy = 0.0;
|
public static double econCostTruce = 0.0;
|
||||||
public static double econCostNeutral = 0.0;
|
public static double econCostNeutral = 0.0;
|
||||||
public static double econCostNoBoom = 0.0;
|
public static double econCostEnemy = 0.0;
|
||||||
|
|
||||||
//Faction banks, to pay for land claiming and other costs instead of individuals paying for them
|
//Faction banks, to pay for land claiming and other costs instead of individuals paying for them
|
||||||
public static boolean bankEnabled = true;
|
public static boolean bankEnabled = true;
|
||||||
|
@ -268,27 +268,27 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator
|
|||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String describeTo(RelationParticipator that, boolean ucfirst)
|
public String describeTo(RelationParticipator observer, boolean ucfirst)
|
||||||
{
|
{
|
||||||
return RelationUtil.describeThatToMe(this, that, ucfirst);
|
return RelationUtil.describeThatToMe(this, observer, ucfirst);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String describeTo(RelationParticipator that)
|
public String describeTo(RelationParticipator observer)
|
||||||
{
|
{
|
||||||
return RelationUtil.describeThatToMe(this, that);
|
return RelationUtil.describeThatToMe(this, observer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Rel getRelationTo(RelationParticipator rp)
|
public Rel getRelationTo(RelationParticipator observer)
|
||||||
{
|
{
|
||||||
return RelationUtil.getRelationTo(this, rp);
|
return RelationUtil.getRelationOfThatToMe(this, observer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Rel getRelationTo(RelationParticipator rp, boolean ignorePeaceful)
|
public Rel getRelationTo(RelationParticipator observer, boolean ignorePeaceful)
|
||||||
{
|
{
|
||||||
return RelationUtil.getRelationTo(this, rp, ignorePeaceful);
|
return RelationUtil.getRelationOfThatToMe(this, observer, ignorePeaceful);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Rel getRelationToLocation()
|
public Rel getRelationToLocation()
|
||||||
@ -297,9 +297,9 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChatColor getColorTo(RelationParticipator rp)
|
public ChatColor getColorTo(RelationParticipator observer)
|
||||||
{
|
{
|
||||||
return RelationUtil.getColorOfThatToMe(this, rp);
|
return RelationUtil.getColorOfThatToMe(this, observer);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
|
@ -186,33 +186,33 @@ public class Faction extends Entity implements EconomyParticipator
|
|||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String describeTo(RelationParticipator that, boolean ucfirst)
|
public String describeTo(RelationParticipator observer, boolean ucfirst)
|
||||||
{
|
{
|
||||||
return RelationUtil.describeThatToMe(this, that, ucfirst);
|
return RelationUtil.describeThatToMe(this, observer, ucfirst);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String describeTo(RelationParticipator that)
|
public String describeTo(RelationParticipator observer)
|
||||||
{
|
{
|
||||||
return RelationUtil.describeThatToMe(this, that);
|
return RelationUtil.describeThatToMe(this, observer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Rel getRelationTo(RelationParticipator rp)
|
public Rel getRelationTo(RelationParticipator observer)
|
||||||
{
|
{
|
||||||
return RelationUtil.getRelationTo(this, rp);
|
return RelationUtil.getRelationOfThatToMe(this, observer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Rel getRelationTo(RelationParticipator rp, boolean ignorePeaceful)
|
public Rel getRelationTo(RelationParticipator observer, boolean ignorePeaceful)
|
||||||
{
|
{
|
||||||
return RelationUtil.getRelationTo(this, rp, ignorePeaceful);
|
return RelationUtil.getRelationOfThatToMe(this, observer, ignorePeaceful);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChatColor getColorTo(RelationParticipator rp)
|
public ChatColor getColorTo(RelationParticipator observer)
|
||||||
{
|
{
|
||||||
return RelationUtil.getColorOfThatToMe(this, rp);
|
return RelationUtil.getColorOfThatToMe(this, observer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Rel getRelationWish(Faction otherFaction)
|
public Rel getRelationWish(Faction otherFaction)
|
||||||
|
@ -52,7 +52,7 @@ public class CmdKick extends FCommand
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (you.getRole().value >= fme.getRole().value)
|
if (you.getRole().isAtLeast(fme.getRole()))
|
||||||
{
|
{
|
||||||
// TODO add more informative messages.
|
// TODO add more informative messages.
|
||||||
msg("<b>Your rank is too low to kick this player.");
|
msg("<b>Your rank is too low to kick this player.");
|
||||||
|
@ -138,7 +138,7 @@ public abstract class FCommand extends MCommand<P>
|
|||||||
{
|
{
|
||||||
if (me == null) return true;
|
if (me == null) return true;
|
||||||
|
|
||||||
if (fme.getRole().value < role.value)
|
if (fme.getRole().isLessThan(role))
|
||||||
{
|
{
|
||||||
msg("<b>You <h>must be "+role+"<b> to "+this.getHelpShort()+".");
|
msg("<b>You <h>must be "+role+"<b> to "+this.getHelpShort()+".");
|
||||||
return false;
|
return false;
|
||||||
@ -356,7 +356,7 @@ public abstract class FCommand extends MCommand<P>
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i.getRole().value > you.getRole().value || i.getRole().equals(Rel.LEADER) )
|
if (i.getRole().isMoreThan(you.getRole()) || i.getRole().equals(Rel.LEADER) )
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
package com.massivecraft.factions.cmd;
|
package com.massivecraft.factions.cmd;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
|
|
||||||
import com.massivecraft.factions.Conf;
|
import com.massivecraft.factions.Conf;
|
||||||
import com.massivecraft.factions.Faction;
|
import com.massivecraft.factions.Faction;
|
||||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||||
@ -51,26 +49,26 @@ public abstract class FRelationCommand extends FCommand
|
|||||||
|
|
||||||
myFaction.setRelationWish(them, targetRelation);
|
myFaction.setRelationWish(them, targetRelation);
|
||||||
Rel currentRelation = myFaction.getRelationTo(them, true);
|
Rel currentRelation = myFaction.getRelationTo(them, true);
|
||||||
ChatColor currentRelationColor = currentRelation.getColor();
|
if (targetRelation == currentRelation)
|
||||||
if (targetRelation.value == currentRelation.value)
|
|
||||||
{
|
{
|
||||||
them.msg("<i>Your faction is now "+currentRelationColor+targetRelation.toString()+"<i> to "+currentRelationColor+myFaction.getTag());
|
them.msg("%s<i> is now %s.", myFaction.describeTo(them, true), targetRelation.getDescFactionOne());
|
||||||
myFaction.msg("<i>Your faction is now "+currentRelationColor+targetRelation.toString()+"<i> to "+currentRelationColor+them.getTag());
|
myFaction.msg("%s<i> is now %s.", them.describeTo(myFaction, true), targetRelation.getDescFactionOne());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
them.msg(currentRelationColor+myFaction.getTag()+"<i> wishes to be your "+targetRelation.getColor()+targetRelation.toString());
|
them.msg("%s<i> wishes to be %s.", myFaction.describeTo(them, true), targetRelation.getColor()+targetRelation.getDescFactionOne());
|
||||||
them.msg("<i>Type <c>/"+Conf.baseCommandAliases.get(0)+" "+targetRelation+" "+myFaction.getTag()+"<i> to accept.");
|
them.msg("<i>Type <c>/"+Conf.baseCommandAliases.get(0)+" "+targetRelation+" "+myFaction.getTag()+"<i> to accept.");
|
||||||
myFaction.msg(currentRelationColor+them.getTag()+"<i> were informed that you wish to be "+targetRelation.getColor()+targetRelation);
|
myFaction.msg("%s<i> were informed that you wish to be %s<i>.", them.describeTo(myFaction, true), targetRelation.getColor()+targetRelation.getDescFactionOne());
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( targetRelation != Rel.NEUTRAL && them.getFlag(FFlag.PEACEFUL))
|
// TODO: The ally case should work!!
|
||||||
|
if ( targetRelation != Rel.TRUCE && them.getFlag(FFlag.PEACEFUL))
|
||||||
{
|
{
|
||||||
them.msg("<i>This will have no effect while your faction is peaceful.");
|
them.msg("<i>This will have no effect while your faction is peaceful.");
|
||||||
myFaction.msg("<i>This will have no effect while their faction is peaceful.");
|
myFaction.msg("<i>This will have no effect while their faction is peaceful.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( targetRelation != Rel.NEUTRAL && myFaction.getFlag(FFlag.PEACEFUL))
|
if ( targetRelation != Rel.TRUCE && myFaction.getFlag(FFlag.PEACEFUL))
|
||||||
{
|
{
|
||||||
them.msg("<i>This will have no effect while their faction is peaceful.");
|
them.msg("<i>This will have no effect while their faction is peaceful.");
|
||||||
myFaction.msg("<i>This will have no effect while your faction is peaceful.");
|
myFaction.msg("<i>This will have no effect while your faction is peaceful.");
|
||||||
|
@ -5,11 +5,11 @@ import com.massivecraft.factions.struct.Rel;
|
|||||||
|
|
||||||
public interface RelationParticipator
|
public interface RelationParticipator
|
||||||
{
|
{
|
||||||
public String describeTo(RelationParticipator that);
|
public String describeTo(RelationParticipator observer);
|
||||||
public String describeTo(RelationParticipator that, boolean ucfirst);
|
public String describeTo(RelationParticipator observer, boolean ucfirst);
|
||||||
|
|
||||||
public Rel getRelationTo(RelationParticipator that);
|
public Rel getRelationTo(RelationParticipator observer);
|
||||||
public Rel getRelationTo(RelationParticipator that, boolean ignorePeaceful);
|
public Rel getRelationTo(RelationParticipator observer, boolean ignorePeaceful);
|
||||||
|
|
||||||
public ChatColor getColorTo(RelationParticipator to);
|
public ChatColor getColorTo(RelationParticipator observer);
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ public class PluginCapiListener extends CapiListener
|
|||||||
for (Player somePlayer : Bukkit.getServer().getOnlinePlayers())
|
for (Player somePlayer : Bukkit.getServer().getOnlinePlayers())
|
||||||
{
|
{
|
||||||
FPlayer someFPlayer = FPlayers.i.get(somePlayer);
|
FPlayer someFPlayer = FPlayers.i.get(somePlayer);
|
||||||
if (someFPlayer.getRelationTo(fme).value >= Rel.ALLY.value)
|
if (someFPlayer.getRelationTo(fme).isAtLeast(Rel.ALLY))
|
||||||
{
|
{
|
||||||
event.getThem().add(somePlayer);
|
event.getThem().add(somePlayer);
|
||||||
}
|
}
|
||||||
|
@ -115,10 +115,7 @@ public class FactionsEntityListener extends EntityListener
|
|||||||
Entity damagee = sub.getEntity();
|
Entity damagee = sub.getEntity();
|
||||||
int damage = sub.getDamage();
|
int damage = sub.getDamage();
|
||||||
|
|
||||||
if ( ! (damagee instanceof Player))
|
if ( ! (damagee instanceof Player)) return true;
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
FPlayer defender = FPlayers.i.get((Player)damagee);
|
FPlayer defender = FPlayers.i.get((Player)damagee);
|
||||||
|
|
||||||
@ -206,23 +203,10 @@ public class FactionsEntityListener extends EntityListener
|
|||||||
|
|
||||||
Rel relation = defendFaction.getRelationTo(attackFaction);
|
Rel relation = defendFaction.getRelationTo(attackFaction);
|
||||||
|
|
||||||
// You can not hurt neutral factions
|
// Check the relation
|
||||||
if (Conf.disablePVPBetweenNeutralFactions && relation == Rel.NEUTRAL)
|
if (relation.isAtLeast(Conf.friendlyFireFromRel))
|
||||||
{
|
{
|
||||||
attacker.msg("<i>You can't hurt neutral factions. Declare them as an enemy.");
|
attacker.msg("<i>You can't hurt %s<i>.", relation.getDescPlayerMany());
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Players without faction may be hurt anywhere
|
|
||||||
if (!defender.hasFaction())
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// You can never hurt faction members or allies
|
|
||||||
if (relation == Rel.MEMBER || relation == Rel.ALLY)
|
|
||||||
{
|
|
||||||
attacker.msg("<i>You can't hurt %s<i>.", defender.describeTo(attacker));
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ public enum FPerm
|
|||||||
List<String> rels = new ArrayList<String>();
|
List<String> rels = new ArrayList<String>();
|
||||||
for (Rel rel : value)
|
for (Rel rel : value)
|
||||||
{
|
{
|
||||||
rels.add("<p>"+rel.nicename);
|
rels.add("<p>"+rel);
|
||||||
}
|
}
|
||||||
if (rels.size() > 0)
|
if (rels.size() > 0)
|
||||||
{
|
{
|
||||||
|
@ -6,22 +6,35 @@ import com.massivecraft.factions.Conf;
|
|||||||
|
|
||||||
public enum Rel
|
public enum Rel
|
||||||
{
|
{
|
||||||
LEADER (70, "leader"),
|
LEADER (70, "your faction leader", "your faction leader", "", ""),
|
||||||
OFFICER (60, "officer"),
|
OFFICER (60, "an officer in your faction", "officers in your faction", "", ""),
|
||||||
MEMBER (50, "member"),
|
MEMBER (50, "a member in your faction", "members in your faction", "your faction", "your factions"),
|
||||||
ALLY (40, "ally"),
|
ALLY (40, "an ally", "allies", "an allied faction", "allied factions"),
|
||||||
TRUCE (30, "truce"),
|
TRUCE (30, "someone in truce with you", "those in truce with you", "a faction in truce", "factions in truce"),
|
||||||
NEUTRAL (20, "neutral"),
|
NEUTRAL (20, "someone neutral to you", "those neutral to you", "a neutral faction", "neutral factions"),
|
||||||
ENEMY (10, "enemy"),
|
ENEMY (10, "an enemy", "enemies", "an enemy faction", "enemy factions"),
|
||||||
;
|
;
|
||||||
|
|
||||||
public final int value;
|
private final int value;
|
||||||
public final String nicename;
|
private final String descPlayerOne;
|
||||||
|
public String getDescPlayerOne() { return this.descPlayerOne; }
|
||||||
|
|
||||||
private Rel(final int value, final String nicename)
|
private final String descPlayerMany;
|
||||||
|
public String getDescPlayerMany() { return this.descPlayerMany; }
|
||||||
|
|
||||||
|
private final String descFactionOne;
|
||||||
|
public String getDescFactionOne() { return this.descFactionOne; }
|
||||||
|
|
||||||
|
private final String descFactionMany;
|
||||||
|
public String getDescFactionMany() { return this.descFactionMany; }
|
||||||
|
|
||||||
|
private Rel(final int value, final String descPlayerOne, final String descPlayerMany, final String descFactionOne, final String descFactionMany)
|
||||||
{
|
{
|
||||||
this.value = value;
|
this.value = value;
|
||||||
this.nicename = nicename;
|
this.descPlayerOne = descPlayerOne;
|
||||||
|
this.descPlayerMany = descPlayerMany;
|
||||||
|
this.descFactionOne = descFactionOne;
|
||||||
|
this.descFactionMany = descFactionMany;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Rel parse(String str)
|
public static Rel parse(String str)
|
||||||
@ -58,12 +71,6 @@ public enum Rel
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString()
|
|
||||||
{
|
|
||||||
return this.nicename;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isAtLeast(Rel rel)
|
public boolean isAtLeast(Rel rel)
|
||||||
{
|
{
|
||||||
return this.value >= rel.value;
|
return this.value >= rel.value;
|
||||||
@ -79,6 +86,11 @@ public enum Rel
|
|||||||
return this.value < rel.value;
|
return this.value < rel.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isMoreThan(Rel rel)
|
||||||
|
{
|
||||||
|
return this.value > rel.value;
|
||||||
|
}
|
||||||
|
|
||||||
public ChatColor getColor()
|
public ChatColor getColor()
|
||||||
{
|
{
|
||||||
if (this == MEMBER)
|
if (this == MEMBER)
|
||||||
@ -116,6 +128,8 @@ public enum Rel
|
|||||||
return Conf.econCostEnemy;
|
return Conf.econCostEnemy;
|
||||||
else if (this == ALLY)
|
else if (this == ALLY)
|
||||||
return Conf.econCostAlly;
|
return Conf.econCostAlly;
|
||||||
|
else if (this == TRUCE)
|
||||||
|
return Conf.econCostTruce;
|
||||||
else
|
else
|
||||||
return Conf.econCostNeutral;
|
return Conf.econCostNeutral;
|
||||||
}
|
}
|
||||||
|
@ -68,40 +68,46 @@ public class RelationUtil
|
|||||||
return describeThatToMe(that, me, false);
|
return describeThatToMe(that, me, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Rel getRelationTo(RelationParticipator me, RelationParticipator that)
|
public static Rel getRelationOfThatToMe(RelationParticipator that, RelationParticipator me)
|
||||||
{
|
{
|
||||||
return getRelationTo(that, me, false);
|
return getRelationOfThatToMe(me, that, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Rel getRelationTo(RelationParticipator me, RelationParticipator that, boolean ignorePeaceful)
|
public static Rel getRelationOfThatToMe(RelationParticipator that, RelationParticipator me, boolean ignorePeaceful)
|
||||||
{
|
{
|
||||||
Faction fthat = getFaction(that);
|
Rel ret = null;
|
||||||
|
|
||||||
|
Faction fthat = getFaction(me);
|
||||||
if (fthat == null) return Rel.NEUTRAL; // ERROR
|
if (fthat == null) return Rel.NEUTRAL; // ERROR
|
||||||
|
|
||||||
Faction fme = getFaction(me);
|
Faction fme = getFaction(that);
|
||||||
if (fme == null) return Rel.NEUTRAL; // ERROR
|
if (fme == null) return Rel.NEUTRAL; // ERROR
|
||||||
|
|
||||||
if (!fthat.isNormal() || !fme.isNormal())
|
// The faction with the lowest wish "wins"
|
||||||
|
if (fme.getRelationWish(fthat).isLessThan(fthat.getRelationWish(fme)))
|
||||||
{
|
{
|
||||||
return Rel.NEUTRAL;
|
ret = fme.getRelationWish(fthat);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = fthat.getRelationWish(fme);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fthat.equals(fme))
|
if (fthat.equals(fme))
|
||||||
{
|
{
|
||||||
return Rel.MEMBER;
|
ret = Rel.MEMBER;
|
||||||
|
// Do officer and leader check
|
||||||
|
if (that instanceof FPlayer)
|
||||||
|
{
|
||||||
|
ret = ((FPlayer)that).getRole();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else if (!ignorePeaceful && (fme.getFlag(FFlag.PEACEFUL) || fthat.getFlag(FFlag.PEACEFUL)))
|
||||||
if (!ignorePeaceful && (fme.getFlag(FFlag.PEACEFUL) || fthat.getFlag(FFlag.PEACEFUL)))
|
|
||||||
{
|
{
|
||||||
return Rel.TRUCE;
|
ret = Rel.TRUCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fme.getRelationWish(fthat).value >= fthat.getRelationWish(fme).value)
|
return ret;
|
||||||
{
|
|
||||||
return fthat.getRelationWish(fme);
|
|
||||||
}
|
|
||||||
|
|
||||||
return fme.getRelationWish(fthat);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Faction getFaction(RelationParticipator rp)
|
public static Faction getFaction(RelationParticipator rp)
|
||||||
@ -135,6 +141,6 @@ public class RelationUtil
|
|||||||
return Conf.colorNoPVP;
|
return Conf.colorNoPVP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return getRelationTo(that, me).getColor();
|
return getRelationOfThatToMe(that, me).getColor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user