Пример #1
0
        /// <summary>
        /// Creates the data for the specified row.
        /// </summary>
        /// <param name="Row">The row.</param>
        internal Data Create(Row Row)
        {
            Data Data;

            switch (this.Index)
            {
            case 1:
            {
                Data = new LocaleData(Row, this);
                break;
            }

            case 2:
            {
                Data = new BillingPackageData(Row, this);
                break;
            }

            case 3:
            case 20:
            {
                Data = new GlobalData(Row, this);
                break;
            }

            case 4:
            {
                Data = new SoundData(Row, this);
                break;
            }

            case 5:
            {
                Data = new ResourceData(Row, this);
                break;
            }

            case 9:
            {
                Data = new CharacterBuffData(Row, this);
                break;
            }

            case 10:
            {
                Data = new ProjectileData(Row, this);
                break;
            }

            case 11:
            {
                Data = new EffectData(Row, this);
                break;
            }

            case 12:
            {
                Data = new PredefinedDeckData(Row, this);
                break;
            }

            case 14:
            {
                Data = new RarityData(Row, this);
                break;
            }

            case 15:
            {
                Data = new LocationData(Row, this);
                break;
            }

            case 16:
            {
                Data = new AllianceBadgeData(Row, this);
                break;
            }

            case 18:
            {
                Data = new NpcData(Row, this);
                break;
            }

            case 19:
            {
                Data = new TreasureChestData(Row, this);
                break;
            }

            case 21:
            {
                Data = new ParticleEmitterData(Row, this);
                break;
            }

            case 22:
            {
                Data = new AreaEffectObjectData(Row, this);
                break;
            }

            case 26:
            case 27:
            case 28:
            case 29:
            {
                Data = new SpellData(Row, this);
                break;
            }

            case 34:
            case 35:
            {
                Data = new CharacterData(Row, this);
                break;
            }

            case 40:
            {
                Data = new HealthBarData(Row, this);
                break;
            }

            case 41:
            {
                Data = new MusicData(Row, this);
                break;
            }

            case 42:
            {
                Data = new DecoData(Row, this);
                break;
            }

            case 43:
            {
                Data = new GambleChestData(Row, this);
                break;
            }

            case 45:
            case 48:
            {
                Data = new TutorialData(Row, this);
                break;
            }

            case 46:
            {
                Data = new ExpLevelData(Row, this);
                break;
            }

            case 50:
            {
                Data = new BackgroundDecoData(Row, this);
                break;
            }

            case 51:
            {
                Data = new SpellSetData(Row, this);
                break;
            }

            case 52:
            {
                Data = new ChestOrderData(Row, this);
                break;
            }

            case 53:
            {
                Data = new TauntData(Row, this);
                break;
            }

            case 54:
            {
                Data = new ArenaData(Row, this);
                break;
            }

            case 55:
            {
                Data = new ResourcePackData(Row, this);
                break;
            }

            case 56:
            {
                Data = new Data(Row, this);
                break;
            }

            case 57:
            {
                Data = new RegionData(Row, this);
                break;
            }

            case 58:
            {
                Data = new NewsData(Row, this);
                break;
            }

            case 59:
            {
                Data = new AllianceRoleData(Row, this);
                break;
            }

            case 60:
            {
                Data = new AchievementData(Row, this);
                break;
            }

            case 61:
            {
                Data = new HintData(Row, this);
                break;
            }

            case 62:
            {
                Data = new HelpshiftData(Row, this);
                break;
            }

            default:
            {
                Logging.Info(this.GetType(), "Invalid data table id: " + this.Index + ".");
                Data = null;
                break;
            }
            }

            return(Data);
        }
Пример #2
0
        private void LoadArenaData(string filename)
        {
            // Init state
            SetState(PluginState.Idle);

            NewArena();

            if (File.Exists(filename))
            {
                // Set current filename
                currentfilename = filename;

                // Load the data
                arenadata = JsonConvert.DeserializeObject<ArenaData>(File.ReadAllText(filename));

                // Make sure there is a guid for legacy arena runs
                if (arenadata.deckguid == "")
                {
                    arenadata.deckguid = Guid.NewGuid().ToString();
                    SaveArenaData();
                }

                if (arenadata.pickedhero != "")
                {
                    // Hero is picked
                    if (arenadata.pickedcards.Count == MaxCardCount)
                    {
                        // All cards picked
                        SetState(PluginState.Done);
                    }
                    else if ((arenadata.detectedcards.Count - 1) == arenadata.pickedcards.Count)
                    {
                        // Cards detected, but not picked
                        UpdateDetectedCards();
                        SetState(PluginState.SearchCardValues);
                    }
                    else
                    {
                        // Not all cards picked, not picking a card
                        // Search for new cards
                        SetState(PluginState.SearchCards);
                    }
                }
                else
                {
                    // No hero picked
                    if (arenadata.detectedheroes.Count == 3)
                    {
                        // Heroes detected

                        // Show the heroes
                        UpdateDetectedHeroes();
                        SetState(PluginState.SearchBigHero);
                    }
                    else
                    {
                        // No heroes detected
                        SetState(PluginState.SearchHeroes);
                    }
                }

                // Resume arena
                plugins.ResumeArena(arenadata, state);

                UpdateTitle();
                UpdateHero();
            }
            else
            {
                // No arena found, started a new one
                // Save the arena data
                SaveArenaData();
                plugins.NewArena(arenadata);
            }
        }
Пример #3
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="CsvFiles" /> class.
        /// </summary>
        public static void Initialize()
        {
            if (CsvFiles.Initialized)
            {
                return;
            }

            CsvFiles.Files    = new Dictionary <int, CsvTable>();
            CsvFiles.Paths    = new Dictionary <int, string>();
            CsvFiles.Tilemaps = new Dictionary <string, TilemapData>(32);

            CsvFiles.Spells     = new List <SpellData>(72);
            CsvFiles.Characters = new List <CharacterData>(72);

            CsvFiles.Paths.Add(1, @"Gamefiles/csv_client/locales.csv");
            CsvFiles.Paths.Add(2, @"Gamefiles/csv_client/billing_packages.csv");
            CsvFiles.Paths.Add(3, @"Gamefiles/csv_logic/globals.csv");
            CsvFiles.Paths.Add(4, @"Gamefiles/csv_client/sounds.csv");
            CsvFiles.Paths.Add(5, @"Gamefiles/csv_logic/resources.csv");

            CsvFiles.Paths.Add(9, @"Gamefiles/csv_logic/character_buffs.csv");

            CsvFiles.Paths.Add(10, @"Gamefiles/csv_logic/projectiles.csv");
            CsvFiles.Paths.Add(11, @"Gamefiles/csv_client/effects.csv");
            CsvFiles.Paths.Add(12, @"Gamefiles/csv_logic/predefined_decks.csv");
            CsvFiles.Paths.Add(14, @"Gamefiles/csv_logic/rarities.csv");
            CsvFiles.Paths.Add(15, @"Gamefiles/csv_logic/locations.csv");
            CsvFiles.Paths.Add(16, @"Gamefiles/csv_logic/alliance_badges.csv");

            CsvFiles.Paths.Add(18, @"Gamefiles/csv_logic/npcs.csv");
            CsvFiles.Paths.Add(19, @"Gamefiles/csv_logic/treasure_chests.csv");

            CsvFiles.Paths.Add(20, @"Gamefiles/csv_client/client_globals.csv");
            CsvFiles.Paths.Add(21, @"Gamefiles/csv_client/particle_emitters.csv");
            CsvFiles.Paths.Add(22, @"Gamefiles/csv_logic/area_effect_objects.csv");

            CsvFiles.Paths.Add(26, @"Gamefiles/csv_logic/spells_characters.csv");
            CsvFiles.Paths.Add(27, @"Gamefiles/csv_logic/spells_buildings.csv");
            CsvFiles.Paths.Add(28, @"Gamefiles/csv_logic/spells_other.csv");
            CsvFiles.Paths.Add(29, @"Gamefiles/csv_logic/spells_heroes.csv");

            CsvFiles.Paths.Add(34, @"Gamefiles/csv_logic/characters.csv");
            CsvFiles.Paths.Add(35, @"Gamefiles/csv_logic/buildings.csv");

            CsvFiles.Paths.Add(40, @"Gamefiles/csv_client/health_bars.csv");
            CsvFiles.Paths.Add(41, @"Gamefiles/csv_client/music.csv");
            CsvFiles.Paths.Add(42, @"Gamefiles/csv_logic/decos.csv");
            CsvFiles.Paths.Add(43, @"Gamefiles/csv_logic/gamble_chests.csv");

            CsvFiles.Paths.Add(45, @"Gamefiles/csv_logic/tutorials_home.csv");
            CsvFiles.Paths.Add(46, @"Gamefiles/csv_logic/exp_levels.csv");

            CsvFiles.Paths.Add(48, @"Gamefiles/csv_logic/tutorials_npc.csv");

            CsvFiles.Paths.Add(50, @"Gamefiles/csv_client/background_decos.csv");

            CsvFiles.Paths.Add(52, @"Gamefiles/csv_logic/chest_order.csv");
            CsvFiles.Paths.Add(53, @"Gamefiles/csv_logic/taunts.csv");
            CsvFiles.Paths.Add(54, @"Gamefiles/csv_logic/arenas.csv");
            CsvFiles.Paths.Add(55, @"Gamefiles/csv_logic/resource_packs.csv");
            CsvFiles.Paths.Add(56, @"Gamefiles/csv_client/credits.csv");
            CsvFiles.Paths.Add(57, @"Gamefiles/csv_logic/regions.csv");
            CsvFiles.Paths.Add(58, @"Gamefiles/csv_client/news.csv");
            CsvFiles.Paths.Add(59, @"Gamefiles/csv_logic/alliance_roles.csv");

            CsvFiles.Paths.Add(60, @"Gamefiles/csv_logic/achievements.csv");
            CsvFiles.Paths.Add(61, @"Gamefiles/csv_client/hints.csv");
            CsvFiles.Paths.Add(62, @"Gamefiles/csv_client/helpshift.csv");
            CsvFiles.Paths.Add(63, @"Gamefiles/csv_logic/tournament_tiers.csv");
            CsvFiles.Paths.Add(64, @"Gamefiles/csv_logic/content_tests.csv");
            CsvFiles.Paths.Add(65, @"Gamefiles/csv_logic/survival_modes.csv");
            CsvFiles.Paths.Add(66, @"Gamefiles/csv_logic/shop.csv");
            CsvFiles.Paths.Add(67, @"Gamefiles/csv_logic/event_categories.csv");
            CsvFiles.Paths.Add(68, @"Gamefiles/csv_logic/draft_deck.csv");

            // Paths.Add(70, @"Gamefiles/csv_logic/abilities.csv");

            CsvFiles.Paths.Add(72, @"Gamefiles/csv_logic/game_modes.csv");

            CsvFiles.Paths.Add(74, @"Gamefiles/csv_logic/event_category_definitions.csv");
            CsvFiles.Paths.Add(75, @"Gamefiles/csv_logic/event_category_object_definitions.csv");
            CsvFiles.Paths.Add(76, @"Gamefiles/csv_logic/event_category_enums.csv");
            CsvFiles.Paths.Add(77, @"Gamefiles/csv_logic/configuration_definitions.csv");

            CsvFiles.Paths.Add(79, @"Gamefiles/csv_logic/pve_gamemodes.csv");

            CsvFiles.Paths.Add(81, @"Gamefiles/csv_logic/tve_gamemodes.csv");
            CsvFiles.Paths.Add(82, @"Gamefiles/csv_logic/tutorial_chest_order.csv");
            CsvFiles.Paths.Add(83, @"Gamefiles/csv_logic/skins.csv");
            CsvFiles.Paths.Add(84, @"Gamefiles/csv_logic/quest_order.csv");
            CsvFiles.Paths.Add(85, @"Gamefiles/csv_logic/event_targeting_definitions.csv");
            CsvFiles.Paths.Add(86, @"Gamefiles/csv_logic/shop_cycle.csv");
            CsvFiles.Paths.Add(87, @"Gamefiles/csv_logic/skin_sets.csv");

            foreach (KeyValuePair <int, string> Pair in CsvFiles.Paths)
            {
                if (!File.Exists(Pair.Value))
                {
                    Logging.Error(typeof(CsvFiles), "File.Exists(Path) != true at Initialize().");
                }
                else
                {
                    CsvFiles.Files.Add(Pair.Key, new CsvTable(Pair.Key, Pair.Value));
                }
            }

            foreach (CsvTable CsvTable in CsvFiles.Files.Values)
            {
                foreach (CsvData CsvData in CsvTable.Datas)
                {
                    CsvData.LoadingFinished();
                }
            }

            CsvFiles.MaxExpLevel = CsvFiles.Get(Gamefile.ExpLevels).Datas.Count;

            CsvFiles.GoldData           = CsvFiles.Get(Gamefile.Resources).GetData <ResourceData>("Gold");
            CsvFiles.FreeGoldData       = CsvFiles.Get(Gamefile.Resources).GetData <ResourceData>("FreeGold");
            CsvFiles.StarCountData      = CsvFiles.Get(Gamefile.Resources).GetData <ResourceData>("StarCount");
            CsvFiles.CardCountData      = CsvFiles.Get(Gamefile.Resources).GetData <ResourceData>("CardCount");
            CsvFiles.ChestCountData     = CsvFiles.Get(Gamefile.Resources).GetData <ResourceData>("ChestCount");
            CsvFiles.SummonerData       = CsvFiles.Get(Gamefile.Buildings).GetData <CharacterData>("KingTower");
            CsvFiles.GameModeLadderData = CsvFiles.Get(Gamefile.GameModes).GetData <GameModeData>("Ladder");

            foreach (ArenaData ArenaData in CsvFiles.Get(Gamefile.Arenas).Datas)
            {
                ArenaData.ConfigureSpells();
            }

            foreach (string FilePath in Directory.GetFiles(@"Gamefiles/tilemaps/"))
            {
                CsvFiles.Tilemaps.Add(FilePath, new TilemapData(FilePath));
            }

            Logging.Info(typeof(CsvFiles), "Loaded " + CsvFiles.Files.Count + " CSV files.");
        }
Пример #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AddChestCommand"/> class.
 /// </summary>
 public AddChestCommand(bool Add, ArenaData ArenaData, string Name)
 {
     this.Add       = Add;
     this.ArenaData = ArenaData;
     this.Name      = Name;
 }
Пример #5
0
    static ArenaDataLoader()
    {
        sprites    = new Dictionary <String, Sprite> ();
        ticks      = GetDerivativesOfInterface <SegmentTickBehaviour> ();
        triggers   = GetDerivativesOfInterface <SegmentTriggerBehaviour> ();
        collisions = GetDerivativesOfInterface <SegmentCollisionBehaviour> ();
        arenas     = new Dictionary <string, ArenaData> ();
        UnityEngine.Object[] textures = Resources.LoadAll("Textures/Segments", typeof(Sprite));
        //Debug.Log ("Unity loaded " + textures.Length + " assets.");
        for (int i = 0; i < textures.Length; i++)
        {
            if (textures [i].GetType() == typeof(Sprite))
            {
                sprites.Add(textures [i].name, textures [i] as Sprite);
            }
        }        /*
                  * String[] names = sprites.Keys.ToArray();
                  * Debug.Log ("Sprites loaded: ");
                  * for (int i = 0; i < names.Length; i++) {
                  *     Debug.Log (names [i]);
                  * }*/
        /*
         * String[] names = ticks.Keys.ToArray();
         * Type[] classes = ticks.Values.ToArray();
         * Debug.Log ("Ticks: ");
         * for (int i = 0; i < names.Length; i++) {
         *      Debug.Log (names [i] + " " + classes [i]);
         * }
         * names = triggers.Keys.ToArray ();
         * classes = triggers.Values.ToArray ();
         * Debug.Log ("triggers: ");
         * for (int i = 0; i < names.Length; i++) {
         *      Debug.Log (names [i] + " " + classes [i]);
         * }
         * names = collisions.Keys.ToArray ();
         * classes = collisions.Values.ToArray ();
         * Debug.Log ("collisions: ");
         * for (int i = 0; i < names.Length; i++) {
         *      Debug.Log (names [i] + " " + classes [i]);
         * }*/
        //Debug.Log("Loading");
        string[] filenames = null;
        filenames = Directory.GetFiles(Application.streamingAssetsPath + "/Arenas").Where(s => s.EndsWith(".txt")).ToArray();

        foreach (string filename in filenames)
        {
            //Debug.Log(filename);
            ArenaData ad    = Load(filename);
            int       first = filename.LastIndexOf('\\') + 1;
            int       last  = filename.LastIndexOf(".txt");
            arenas.Add(filename.Substring(first, last - first), ad);

            /*
             * for (int i = 0; i < rd.Count; i++) {
             *      Debug.Log (rd [i].size);
             *      Debug.Log (rd [i].sprite);
             *      Debug.Log (rd [i].segmentCollisionBehaviours.Count);
             *      Debug.Log (rd [i].segmentTickBehaviours.Count);
             *      Debug.Log (rd [i].segmentTriggerBehaviours.Count);
             * }*/
            /*
             * if (ad.powerupSpawner != null) {
             *      Debug.Log ("Power up spawner data:");
             *      Debug.Log (ad.powerupSpawner.maxNumberOfPowerups);
             *      Debug.Log (ad.powerupSpawner.maxSpawnDuration);
             *      Debug.Log (ad.powerupSpawner.minSpawnDuration);
             *      Debug.Log (ad.powerupSpawner.powerUps.Count);
             *      for (int i = 0; i < ad.powerupSpawner.powerUps.Count; i++)
             *              Debug.Log (ad.powerupSpawner.powerUps [i].name);
             *      Debug.Log (ad.powerupSpawner.spawnDistances.Count);
             *      for(int i=0; i < ad.powerupSpawner.spawnDistances.Count; i++)
             *              Debug.Log (ad.powerupSpawner.spawnDistances[i]);
             * } else {
             *      Debug.Log ("No power up spawner data:");
             * }*/
        }
        Debug.Log("Arena names");
        foreach (string s in arenas.Keys)
        {
            Debug.Log(s);
        }
    }
Пример #6
0
 public static bool RunGeneric(List <ArenaDataHistoryItem> _HistoryArray, ArenaData _Data, UploadID _Uploader)
 {
     return(RunGeneric_T(_HistoryArray, new ArenaDataHistoryItem(_Data, _Uploader), ArenaDataHistoryItem.IsSame, ArenaDataHistoryItem.Time1BiggerThan2, ArenaDataHistoryItem.CopyUploader2To1));
 }
Пример #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoyalTvContentMessage"/> class.
 /// </summary>
 /// <param name="Entries">The entries.</param>
 /// <param name="Arena">The arena.</param>
 public RoyalTvContentMessage(RoyalTvEntry[] Entries, ArenaData Arena)
 {
     this.Arena   = Arena;
     this.Entries = Entries;
 }