added option "claimsMustBeConnected" (defaults to false) which requires all faction claims beyond the first to be connected to each other; support for "{FACTION_TITLE}" in chat messages
This commit is contained in:
parent
56cbf54c98
commit
8880d503e2
@ -77,6 +77,15 @@ public class Board {
|
||||
return faction != getFactionAt(a) || faction != getFactionAt(b) || faction != getFactionAt(c) || faction != getFactionAt(d);
|
||||
}
|
||||
|
||||
// Is this coord connected to any coord claimed by the specified faction?
|
||||
public static boolean isConnectedLocation(FLocation flocation, Faction faction) {
|
||||
FLocation a = flocation.getRelative(1, 0);
|
||||
FLocation b = flocation.getRelative(-1, 0);
|
||||
FLocation c = flocation.getRelative(0, 1);
|
||||
FLocation d = flocation.getRelative(0, -1);
|
||||
return faction == getFactionAt(a) || faction == getFactionAt(b) || faction == getFactionAt(c) || faction == getFactionAt(d);
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------//
|
||||
// Cleaner. Remove orphaned foreign keys
|
||||
|
@ -68,6 +68,8 @@ public class Conf {
|
||||
|
||||
public static boolean disablePVPForFactionlessPlayers = false;
|
||||
|
||||
public static boolean claimsMustBeConnected = false;
|
||||
|
||||
public static double territoryShieldFactor = 0.3;
|
||||
public static boolean territoryDenyBuild = true;
|
||||
public static boolean territoryDenyBuildWhenOffline = true;
|
||||
|
@ -487,6 +487,11 @@ public class FPlayer {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Conf.claimsMustBeConnected && !Board.isConnectedLocation(flocation, myFaction)) {
|
||||
sendMessage("You can only claim additional land which is connected to your first claim!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (otherFaction.isNone()) {
|
||||
myFaction.sendMessage(this.getNameAndRelevant(myFaction)+Conf.colorSystem+" claimed some new land :D");
|
||||
} else { //if (otherFaction.isNormal()) {
|
||||
|
@ -73,6 +73,10 @@ public class FactionsPlayerListener extends PlayerListener{
|
||||
|
||||
if (!Conf.chatTagReplaceString.isEmpty() && eventFormat.contains(Conf.chatTagReplaceString)) {
|
||||
// we're using the "replace" method of inserting the faction tags
|
||||
// if they stuck "{FACTION_TITLE}" in there, go ahead and do it too
|
||||
if (eventFormat.contains("{FACTION_TITLE}")) {
|
||||
eventFormat = eventFormat.replace("{FACTION_TITLE}", me.getTitle());
|
||||
}
|
||||
InsertIndex = eventFormat.indexOf(Conf.chatTagReplaceString);
|
||||
eventFormat = eventFormat.replace(Conf.chatTagReplaceString, "");
|
||||
Conf.chatTagPadAfter = false;
|
||||
|
Loading…
Reference in New Issue
Block a user