The friendlyfire flag now works

This commit is contained in:
Olof Larsson 2011-10-24 14:54:37 +02:00
parent 8eec55e37e
commit 451d9570e4
2 changed files with 7 additions and 14 deletions

View File

@ -110,7 +110,7 @@ public class Factions extends EntityCollection<Faction>
faction.setFlag(FFlag.MONSTERS, true);
faction.setFlag(FFlag.EXPLOSIONS, true);
faction.setFlag(FFlag.FIRESPREAD, true);
faction.setFlag(FFlag.LIGHTNING, true);
//faction.setFlag(FFlag.LIGHTNING, true);
faction.setFlag(FFlag.ENDERGRIEF, true);
faction.setPermittedRelations(FPerm.BUILD, Rel.LEADER, Rel.OFFICER, Rel.MEMBER, Rel.ALLY, Rel.TRUCE, Rel.NEUTRAL, Rel.ENEMY);
@ -131,7 +131,7 @@ public class Factions extends EntityCollection<Faction>
faction.setFlag(FFlag.MONSTERS, false);
faction.setFlag(FFlag.EXPLOSIONS, false);
faction.setFlag(FFlag.FIRESPREAD, false);
faction.setFlag(FFlag.LIGHTNING, false);
//faction.setFlag(FFlag.LIGHTNING, false);
faction.setFlag(FFlag.ENDERGRIEF, false);
faction.setPermittedRelations(FPerm.DOOR, Rel.LEADER, Rel.OFFICER, Rel.MEMBER, Rel.ALLY, Rel.TRUCE, Rel.NEUTRAL, Rel.ENEMY);
@ -151,7 +151,7 @@ public class Factions extends EntityCollection<Faction>
faction.setFlag(FFlag.MONSTERS, true);
faction.setFlag(FFlag.EXPLOSIONS, true);
faction.setFlag(FFlag.FIRESPREAD, true);
faction.setFlag(FFlag.LIGHTNING, true);
//faction.setFlag(FFlag.LIGHTNING, true);
faction.setFlag(FFlag.ENDERGRIEF, true);
faction.setPermittedRelations(FPerm.DOOR, Rel.LEADER, Rel.OFFICER, Rel.MEMBER, Rel.ALLY, Rel.TRUCE, Rel.NEUTRAL, Rel.ENEMY);

View File

@ -65,12 +65,6 @@ public class FactionsEntityListener extends EntityListener
fplayer.msg("<i>Your power is now <h>"+fplayer.getPowerRounded()+" / "+fplayer.getPowerMaxRounded());
}
/**
* Who can I hurt?
* I can never hurt members or allies.
* I can always hurt enemies.
* I can hurt neutrals as long as they are outside their own territory.
*/
@Override
public void onEntityDamage(EntityDamageEvent event)
{
@ -146,7 +140,7 @@ public class FactionsEntityListener extends EntityListener
if (damager instanceof Player)
{
FPlayer attacker = FPlayers.i.get((Player)damager);
attacker.msg("<i>You can't hurt other players here.");
attacker.msg("<i>PVP is disabled in %s.", defLocFaction.describeTo(attacker));
return false;
}
return defLocFaction.getFlag(FFlag.MONSTERS);
@ -175,7 +169,7 @@ public class FactionsEntityListener extends EntityListener
// so we know from above that the defender isn't in a safezone... what about the attacker, sneaky dog that he might be?
if (locFaction.getFlag(FFlag.PVP) == false)
{
attacker.msg("<i>You can't hurt other players here.");
attacker.msg("<i>PVP is disabled in %s.", locFaction.describeTo(attacker));
return false;
}
@ -204,15 +198,14 @@ public class FactionsEntityListener extends EntityListener
Rel relation = defendFaction.getRelationTo(attackFaction);
// Check the relation
if (relation.isAtLeast(Conf.friendlyFireFromRel))
if (relation.isAtLeast(Conf.friendlyFireFromRel) && defLocFaction.getFlag(FFlag.FRIENDLYFIRE) == false)
{
attacker.msg("<i>You can't hurt %s<i>.", relation.getDescPlayerMany());
return false;
}
boolean ownTerritory = defender.isInOwnTerritory();
// You can not hurt neutrals in their own territory.
boolean ownTerritory = defender.isInOwnTerritory();
if (ownTerritory && relation == Rel.NEUTRAL)
{
attacker.msg("<i>You can't hurt %s<i> in their own territory unless you declare them as an enemy.", defender.describeTo(attacker));