public static void FactionTownReset_OnCommand(CommandEventArgs e) { MonolithCollection monoliths = BaseMonolith.Monoliths; for (int i = 0; i < monoliths.Count; ++i) { monoliths[i].Sigil = null; } TownCollection towns = Town.Towns; for (int i = 0; i < towns.Count; ++i) { towns[i].Silver = 0; towns[i].Sheriff = null; towns[i].Finance = null; towns[i].Tax = 0; towns[i].Owner = null; } SigilCollection sigils = Sigil.Sigils; for (int i = 0; i < sigils.Count; ++i) { sigils[i].Corrupted = null; sigils[i].Corrupting = null; sigils[i].LastStolen = DateTime.MinValue; sigils[i].GraceStart = DateTime.MinValue; sigils[i].CorruptionStart = DateTime.MinValue; sigils[i].PurificationStart = DateTime.MinValue; sigils[i].LastMonolith = null; sigils[i].ReturnHome(); } FactionCollection factions = Faction.Factions; for (int i = 0; i < factions.Count; ++i) { Faction f = factions[i]; ArrayList list = new ArrayList(f.State.FactionItems); for (int j = 0; j < list.Count; ++j) { FactionItem fi = (FactionItem)list[j]; if (fi.Expiration == DateTime.MinValue) { fi.Item.Delete(); } else { fi.Detach(); } } } }
public static void FactionTownReset_OnCommand( CommandEventArgs e ) { List<BaseMonolith> monoliths = BaseMonolith.Monoliths; for ( int i = 0; i < monoliths.Count; ++i ) monoliths[i].Sigil = null; List<Town> towns = Town.Towns; for ( int i = 0; i < towns.Count; ++i ) { towns[i].Silver = 0; towns[i].Sheriff = null; towns[i].Finance = null; towns[i].Tax = 0; towns[i].Owner = null; } List<Sigil> sigils = Sigil.Sigils; for ( int i = 0; i < sigils.Count; ++i ) { sigils[i].Corrupted = null; sigils[i].Corrupting = null; sigils[i].LastStolen = DateTime.MinValue; sigils[i].GraceStart = DateTime.MinValue; sigils[i].CorruptionStart = DateTime.MinValue; sigils[i].PurificationStart = DateTime.MinValue; sigils[i].LastMonolith = null; sigils[i].ReturnHome(); } List<Faction> factions = Faction.Factions; for ( int i = 0; i < factions.Count; ++i ) { Faction f = factions[i]; List<FactionItem> list = new List<FactionItem>( f.State.FactionItems ); for ( int j = 0; j < list.Count; ++j ) { FactionItem fi = list[j]; if ( fi.Expiration == DateTime.MinValue ) fi.Item.Delete(); else fi.Detach(); } } }
public static FactionItem Find(Item item) { if (item is IFactionItem) { FactionItem state = ((IFactionItem)item).FactionItemState; if (state != null && state.HasExpired) { state.Detach(); state = null; } return(state); } return(null); }
public static FactionItem Find(Item item) { if (item is IFactionItem factionItem) { FactionItem state = factionItem.FactionItemState; if (state?.HasExpired == true) { state.Detach(); state = null; } return(state); } return(null); }
public static void FactionReset_OnCommand(CommandEventArgs e) { List <BaseMonolith> monoliths = BaseMonolith.Monoliths; for (int i = 0; i < monoliths.Count; ++i) { monoliths[i].Sigil = null; } List <Town> towns = Town.Towns; for (int i = 0; i < towns.Count; ++i) { towns[i].Silver = 0; towns[i].Sheriff = null; towns[i].Finance = null; towns[i].Tax = 0; towns[i].Owner = null; } List <Sigil> sigils = Sigil.Sigils; for (int i = 0; i < sigils.Count; ++i) { sigils[i].Corrupted = null; sigils[i].Corrupting = null; sigils[i].LastStolen = DateTime.MinValue; sigils[i].GraceStart = DateTime.MinValue; sigils[i].CorruptionStart = DateTime.MinValue; sigils[i].PurificationStart = DateTime.MinValue; sigils[i].LastMonolith = null; sigils[i].ReturnHome(); } List <Faction> factions = Faction.Factions; for (int i = 0; i < factions.Count; ++i) { Faction f = factions[i]; List <PlayerState> playerStateList = new List <PlayerState>(f.Members); for (int j = 0; j < playerStateList.Count; ++j) { f.RemoveMember(playerStateList[j].Mobile); } List <FactionItem> factionItemList = new List <FactionItem>(f.State.FactionItems); for (int j = 0; j < factionItemList.Count; ++j) { FactionItem fi = (FactionItem)factionItemList[j]; if (fi.Expiration == DateTime.MinValue) { fi.Item.Delete(); } else { fi.Detach(); } } List <BaseFactionTrap> factionTrapList = new List <BaseFactionTrap>(f.Traps); for (int j = 0; j < factionTrapList.Count; ++j) { factionTrapList[j].Delete(); } } }