public static void Initialize() { // Initialize our stuff. CSV.Initialize(); Game_Events.Initialize(); Deck.Initialize(); Files.Cards.Initialize(); Fingerprint.Initialize(); Arenas.Initialize(); Rarities.Initialize(); Logic.Structure.Game.Cards.Initialize(); Chests.Initialize(); ResourcesManager.Initialize(); ObjectManager.Initialize(); Logger.Initialize(); ExceptionLogger.Initialize(); Gateway.Initialize(); Timers.Initialize(); Timers.Run(); // Start listening since we're done initializing. Gateway.Listen(); if (Constants.UseDiscord) { Client.Initialize(); } Events = new EventsHandler(); }
private ArenaInfo GetArenaInfo(IContentManagerArenaId arena, IDocumentId documentId = null /*for logging only*/) { if (Arenas.TryGetValue(arena, out var currentArenaInfo)) { return(currentArenaInfo); } throw new ArgumentException($"Working with disposed arena {arena} for document id '{documentId?.ToString() ?? ""}'"); }
public void Unregister(PVPArena arena) { if (Arenas != null) { Arenas.Remove(arena); } arena.Unregister(); }
public IContentManagerArena BeginArena() { var arena = new ContentManagerArena(this.OnCloseArena); if (!Arenas.TryAdd(arena, new ArenaInfo())) { throw new Exception($"Content manager arena id {arena} duplicated. Internal error."); } return(arena); }
public IEnumerable <PlayerStatusTypeViewModel> GetUsedPlayerStatus() { var playerStatuses = new List <PlayerStatusTypeViewModel>(); playerStatuses.AddRange(ScanForDynamicLayoutPlayerStatus(Arenas.SelectMany(a => a.Layouts), layout => layout.PlayerStatus)); playerStatuses.AddRange(ScanForDynamicLayoutPlayerStatus(Lobbies, lobbies => lobbies.PlayerStatus)); playerStatuses.AddRange(ScanForDynamicLayoutPlayerStatus(TopGames, topGames => topGames.PlayerStatus)); playerStatuses.AddRange(ScanForDynamicLayoutPlayerStatus(VipGames, vipGames => vipGames.PlayerStatus)); return(playerStatuses.Distinct().ToArray()); }
private void OnCloseArena(IContentManagerArenaId arena) { if (!Arenas.TryRemove(arena, out var arenaInfo)) { throw new ArgumentException("Already disposed content manager arena " + arena); } foreach (var documentId in arenaInfo.ToList()) { documentId.Value.OnCloseArena?.Invoke(documentId.Key); } }
public List <ArenaDuel> GetBookedDuels() { List <ArenaDuel> booked = new List <ArenaDuel>(); foreach (PVPArena arena in Arenas.Where(a => a.BookedDuels.Count > 0)) { booked.AddRange(arena.BookedDuels); } return(booked); }
public ArenaDuel GetBookedDuel(PlayerMobile pm) { foreach (PVPArena arena in Arenas.Where(a => a.BookedDuels.Count > 0)) { foreach (ArenaDuel duel in arena.BookedDuels.Where(d => d.IsParticipant(pm))) { return(duel); } } return(null); }
public void Register(PVPArena arena) { if (Arenas == null) { Arenas = new List <PVPArena>(); } if (!Arenas.Contains(arena)) { Arenas.Add(arena); } }
internal int GetPlayerIndex(string player) { if (!Players.Contains(player)) { Players.Add(player); ClassEdit.Add("none"); Arenas.Add("none"); Playing.Add("none"); Preview.Add(false); Backups.Add(null); } return(Players.FindIndex(p => p == player)); }
public static void Discuss(string arena_id, string uid, string message) { Arena arena; lock (Arenas) { if (Arenas.TryGetValue(arena_id, out arena)) { foreach (ClientServant cs in arena.m_present.Values) { cs.PostMessage(new Message(uid, "discuss", message)); } } } }
public static void LayAt(string arena_id, string uid, int x, int y) { Arena arena; lock (Arenas) { if (Arenas.TryGetValue(arena_id, out arena)) { foreach (ClientServant cs in arena.m_present.Values) { cs.PostMessage(new Message(uid, "layat", x.ToString(), y.ToString())); } } } }
public override int GetHashCode() { int hash = 1; hash ^= Arenas.GetHashCode(); if (Seed != 0) { hash ^= Seed.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public bool Equals(ArenasConfigurationsProto other) { if (ReferenceEquals(other, null)) { return(false); } if (ReferenceEquals(other, this)) { return(true); } if (!Arenas.Equals(other.Arenas)) { return(false); } if (Seed != other.Seed) { return(false); } return(Equals(_unknownFields, other._unknownFields)); }
internal Data Create(Row _Row) { Data _Data; switch ((Gamefile)this.Index) { case Gamefile.Treasure_Chests: _Data = new Treasure_Chests(_Row, this); break; case Gamefile.Rarities: _Data = new Rarities(_Row, this); break; case Gamefile.Spells_Characters: _Data = new Spells_Characters(_Row, this); break; case Gamefile.Spells_Buildings: _Data = new Spells_Buildings(_Row, this); break; case Gamefile.Spells_Other: _Data = new Spells_Other(_Row, this); break; case Gamefile.Arenas: _Data = new Arenas(_Row, this); break; default: { _Data = new Data(_Row, this); break; } } return(_Data); }
internal Data Create(Row _Row) { Data _Data; switch (this.Index) { case 1: _Data = new Abilities(_Row, this); break; case 2: _Data = new Achievements(_Row, this); break; case 3: _Data = new Alliance_Badges(_Row, this); break; case 4: _Data = new Alliance_Roles(_Row, this); break; case 5: _Data = new Area_Effect(_Row, this); break; case 6: _Data = new Arenas(_Row, this); break; case 7: _Data = new Buildings(_Row, this); break; case 8: _Data = new Character_Buffs(_Row, this); break; case 9: _Data = new Characters(_Row, this); break; case 10: _Data = new Chest_Order(_Row, this); break; case 11: _Data = new Configuration_Definitions(_Row, this); break; case 12: _Data = new Content_Tests(_Row, this); break; case 13: _Data = new Decos(_Row, this); break; case 14: _Data = new Draft_Deck(_Row, this); break; case 15: _Data = new Event_Categories(_Row, this); break; case 16: _Data = new Event_Category_Definitions(_Row, this); break; case 17: _Data = new Event_Category_Enums(_Row, this); break; case 18: _Data = new Event_Category_Object_Definitions(_Row, this); break; case 19: _Data = new Exp_Levels(_Row, this); break; case 20: _Data = new Gamble_Chests(_Row, this); break; case 21: _Data = new Game_Modes(_Row, this); break; case 22: _Data = new Globals(_Row, this); break; case 23: _Data = new Heroes(_Row, this); break; case 24: _Data = new Locales(_Row, this); break; case 25: _Data = new Locations(_Row, this); break; case 26: _Data = new NPCS(_Row, this); break; case 27: _Data = new Predefined_Decks(_Row, this); break; case 28: _Data = new Projectiles(_Row, this); break; case 29: _Data = new Rarities(_Row, this); break; case 30: _Data = new Regions(_Row, this); break; case 31: _Data = new Resource_Packs(_Row, this); break; case 32: _Data = new Resources(_Row, this); break; case 33: _Data = new Shop(_Row, this); break; case 34: _Data = new Spell_Sets(_Row, this); break; case 35: _Data = new Spells_Buildings(_Row, this); break; case 36: _Data = new Spells_Characters(_Row, this); break; case 37: _Data = new Spells_Heroes(_Row, this); break; case 38: _Data = new Spells_Others(_Row, this); break; case 39: _Data = new Survival_Modes(_Row, this); break; case 40: _Data = new Taunts(_Row, this); break; case 41: _Data = new Tournament_Tiers(_Row, this); break; case 42: _Data = new Treasure_Chests(_Row, this); break; case 43: _Data = new Tutorials_Home(_Row, this); break; case 44: _Data = new Tutorial_NPC(_Row, this); break; default: { _Data = new Data(_Row, this); break; } } return(_Data); }
/// <summary> /// Create the item. /// </summary> /// <param name="_Row">The row.</param> /// <returns>The Data.</returns> public Data Create(Row _Row) { Data _Data; switch (this.Index) { case 1: { _Data = new Achievements(_Row, this); break; } case 2: { _Data = new Alliance_Badges(_Row, this); break; } case 3: { _Data = new Alliance_Roles(_Row, this); break; } case 4: { _Data = new Area_Effect_Objects(_Row, this); break; } case 5: { _Data = new Arenas(_Row, this); break; } case 6: { _Data = new Buildings(_Row, this); break; } case 7: { _Data = new Character_Buffs(_Row, this); break; } case 8: { _Data = new Characters(_Row, this); break; } case 9: { _Data = new Chest_Order(_Row, this); break; } case 10: { _Data = new Content_Tests(_Row, this); break; } case 11: { _Data = new Damage_Types(_Row, this); break; } case 12: { _Data = new Decos(_Row, this); break; } case 13: { _Data = new Exp_Levels(_Row, this); break; } case 14: { _Data = new Gamble_Chests(_Row, this); break; } case 15: { _Data = new Globals(_Row, this); break; } case 16: { _Data = new Locales(_Row, this); break; } case 17: { _Data = new Locations(_Row, this); break; } case 18: { _Data = new Npcs(_Row, this); break; } case 19: { _Data = new Predefined_Decks(_Row, this); break; } case 20: { _Data = new Projectiles(_Row, this); break; } case 21: { _Data = new Rarities(_Row, this); break; } case 22: { _Data = new Regions(_Row, this); break; } case 23: { _Data = new Resource_Packs(_Row, this); break; } case 24: { _Data = new Resources(_Row, this); break; } case 25: { _Data = new Shop(_Row, this); break; } case 26: { _Data = new Spawn_Points(_Row, this); break; } case 27: { _Data = new Spell_Sets(_Row, this); break; } case 28: { _Data = new Spells_Buildings(_Row, this); break; } case 29: { _Data = new Spells_Characters(_Row, this); break; } case 30: { _Data = new Spells_Other(_Row, this); break; } case 31: { _Data = new Survival_Modes(_Row, this); break; } case 32: { _Data = new Taunts(_Row, this); break; } case 33: { _Data = new Tournament_Tiers(_Row, this); break; } case 34: { _Data = new Treasure_Chests(_Row, this); break; } case 35: { _Data = new Tutorials_Home(_Row, this); break; } case 36: { _Data = new Tutorials_Npc(_Row, this); break; } default: { _Data = new Data(_Row, this); break; } } return(_Data); }
public void OnTick() { Arenas.ForEach(a => a.OnTick()); }
private static bool CanInitialize(ArenaDefinition def) { return(!Instance.IsBlocked(def) && (Arenas == null || !Arenas.Any(arena => arena.Definition == def))); }
public void Unregister(PVPArena arena) { Arenas?.Remove(arena); arena.Unregister(); }