public override bool DoActionWander() { // Scriptiz : les gardes ne s'attaquent pas entre eux ! if (m_Mobile.Combatant != null && m_Mobile.Combatant is PomiGuard) { m_Mobile.Combatant.Criminal = false; m_Mobile.Criminal = false; m_Mobile.Combatant.Combatant = null; m_Mobile.Combatant = null; } TownStone m_Town = ((PomiGuard)(m_Mobile)).Town; m_Mobile.DebugSay("I have no combatant"); m_Mobile.Criminal = false; if (AcquireFocusMob(m_Mobile.RangePerception, m_Mobile.FightMode, true, false, true)) { m_Mobile.DebugSay("I see {0}", m_Mobile.FocusMob.Name); if (m_Town.HLL.Contains((PlayerMobile)m_Mobile.FocusMob) || isEnnemi((PlayerMobile)m_Mobile.FocusMob, m_Town) || (m_Mobile.FocusMob.Criminal && !m_Town.isMaire((PlayerMobile)m_Mobile.FocusMob) && !m_Town.isConseiller((PlayerMobile)m_Mobile.FocusMob) && !m_Town.isAmbassadeur((PlayerMobile)m_Mobile.FocusMob) && !m_Town.isCapitaine((PlayerMobile)m_Mobile.FocusMob) && !m_Town.Gardes.Contains((PlayerMobile)m_Mobile.FocusMob))) { m_Mobile.DebugSay("I have detected {0}, attacking", m_Mobile.FocusMob.Name); m_Mobile.Combatant = m_Mobile.FocusMob; Action = ActionType.Combat; } else { base.DoActionWander(); } } else { base.DoActionWander(); } return(true); }
private bool isEnnemi(PlayerMobile from, TownStone town) { PomiCloak pomicloak = from.FindItemOnLayer(Layer.Cloak) as PomiCloak; if (pomicloak != null && pomicloak.Name == "Ambassadeur") { return(false); } foreach (TownStone ville in town.Guerre) { if (ville.isCitoyen(from)) { return(true); } } return(false); }