public void LoadFromDB() { // Set initial reputations (so everything is nifty before DB data load) Initialize(); SQLResult result = DB.Characters.Select("SELECT faction, standing, flags FROM character_reputation WHERE guid = {0}", _player.GetGUIDLow()); if (result.Count != 0) { for (var i = 0; i < result.Count; i++) { var factionEntry = DBCStorage.FactionStorage.LookupByKey(result.Read <uint>(i, 0)); if (factionEntry != null && factionEntry.reputationListID >= 0) { var faction = _factions.LookupByKey((uint)factionEntry.reputationListID); // update standing to current faction.Standing = result.Read <int>(i, 1); // update counters int BaseRep = GetBaseReputation(factionEntry); ReputationRank old_rank = ReputationToRank(BaseRep); ReputationRank new_rank = ReputationToRank(BaseRep + faction.Standing); UpdateRankCounters(old_rank, new_rank); FactionFlags dbFactionFlags = (FactionFlags)result.Read <uint>(i, 2); if (Convert.ToBoolean(dbFactionFlags & FactionFlags.Visible)) { SetVisible(faction); // have internal checks for forced invisibility } if (Convert.ToBoolean(dbFactionFlags & FactionFlags.Inactive)) { SetInactive(faction, true); // have internal checks for visibility requirement } if (Convert.ToBoolean(dbFactionFlags & FactionFlags.AtWar)) // DB at war { SetAtWar(faction, true); // have internal checks for FACTION_FLAG_PEACE_FORCED } else // DB not at war { // allow remove if visible (and then not FACTION_FLAG_INVISIBLE_FORCED or FACTION_FLAG_HIDDEN) if (Convert.ToBoolean(faction.Flags & FactionFlags.Visible)) { SetAtWar(faction, false); // have internal checks for FACTION_FLAG_PEACE_FORCED } } // set atWar for hostile if (GetRank(factionEntry) <= ReputationRank.Hostile) { SetAtWar(faction, true); } // reset changed flag if values similar to saved in DB if (faction.Flags == dbFactionFlags) { faction.needSend = false; faction.needSave = false; } } } } }
public bool IsEnemey(FactionFlags flags) { return (EnemyFlags & flags) != global::FactionFlags.None; }
public void LoadFromDB(SQLResult result) { // Set initial reputations (so everything is nifty before DB data load) Initialize(); if (!result.IsEmpty()) { do { var factionEntry = CliDB.FactionStorage.LookupByKey(result.Read <uint>(0)); if (factionEntry != null && factionEntry.CanHaveReputation()) { var faction = _factions.LookupByKey((uint)factionEntry.ReputationIndex); if (faction == null) { continue; } // update standing to current faction.Standing = result.Read <int>(1); // update counters int BaseRep = GetBaseReputation(factionEntry); ReputationRank old_rank = ReputationToRank(BaseRep); ReputationRank new_rank = ReputationToRank(BaseRep + faction.Standing); UpdateRankCounters(old_rank, new_rank); FactionFlags dbFactionFlags = (FactionFlags)result.Read <uint>(2); if (Convert.ToBoolean(dbFactionFlags & FactionFlags.Visible)) { SetVisible(faction); // have internal checks for forced invisibility } if (Convert.ToBoolean(dbFactionFlags & FactionFlags.Inactive)) { SetInactive(faction, true); // have internal checks for visibility requirement } if (Convert.ToBoolean(dbFactionFlags & FactionFlags.AtWar)) // DB at war { SetAtWar(faction, true); // have internal checks for FACTION_FLAG_PEACE_FORCED } else // DB not at war { // allow remove if visible (and then not FACTION_FLAG_INVISIBLE_FORCED or FACTION_FLAG_HIDDEN) if (Convert.ToBoolean(faction.Flags & FactionFlags.Visible)) { SetAtWar(faction, false); // have internal checks for FACTION_FLAG_PEACE_FORCED } } // set atWar for hostile if (GetRank(factionEntry) <= ReputationRank.Hostile) { SetAtWar(faction, true); } // reset changed flag if values similar to saved in DB if (faction.Flags == dbFactionFlags) { faction.needSend = false; faction.needSave = false; } } } while (result.NextRow()); } }
public FactionInfo(int index, FactionFlags flags, int standing) { Index = index; Flags = flags; Standing = standing; }
public static bool HasAnyFlag(this FactionFlags flags, FactionFlags otherFlags) { return((flags & otherFlags) != 0); }
public void HideFactionFlag() { RemoveIcon(FactionFlags.GetFlagIconName(GetComponent <Ship>().faction)); }
public void ShowFactionFlag() { AddIcon(FactionFlags.GetFlagIconName(GetComponent <Ship>().faction)); }
public static bool HasAnyFlag(this FactionFlags flags, FactionFlags otherFlags) { return (flags & otherFlags) != 0; }