예제 #1
0
    public void Setter(GameObject skillDescriptionPrefab, GameObject parent, GameObject content, string cls, int skillIndex, Skill skill, SKILLTYPE type)
    {
        this.skillDescriptionPrefab = skillDescriptionPrefab;
        this.parent     = parent;
        this.content    = content;
        this.skillIndex = skillIndex;
        this.cls        = cls;
        this.skill      = skill;
        this.type       = type;
        //characterImage.GetComponent<Image>().sprite = Resources.Load<Sprite>(Resource.PriestIdle) as Sprite;

        //Debug.Log(skill.name);
        skillInformation = SkillParser.GetSkill(SkillName.GetSkillNameFile(skill.name, cls, type), skill.level - 1);

        transform.Find("SkillOverview").Find("SkillName").GetComponent <Text>().text = skillInformation.skillName + " Lv." + skill.level;
        Color nameColor = new Color(0, 0, 0);

        if (type == SKILLTYPE.PAS)
        {
            nameColor = new Color(0.7f, 0.8f, 1f);
        }
        else
        {
            nameColor = new Color(1f, 0.8f, 0.8f);
        }
        transform.Find("SkillOverview").Find("SkillName").GetComponent <Text>().color = nameColor;

        transform.Find("SkillOverview").Find("SkillSummary").GetComponent <Text>().text = skillInformation.explain;
        transform.Find("SkillOverview").Find("SkillIcon").GetComponent <Image>().sprite =
            Resources.Load <Sprite>(skill.image);
    }
예제 #2
0
        public void TestSkillLanguage_StatsRetrieval()
        {
            List <string>       statement = new List <string>();
            List <double>       expected  = new List <double>();
            List <SkillContext> context   = new List <SkillContext>();
            SkillLexer          lex;
            SkillParser         parser;

            SkillContext baseContext = new SkillContext()
            {
                Caster = new Fighter("", new Stats(new int[] { 1, 2, 3, 4, 5, 6, 7 }), false, null), Target = new Fighter("", new Stats(new int[] { 7, 6, 5, 4, 3, 2, 1 }), false, null)
            };

            statement.Add("C.HP;");
            expected.Add(3);
            context.Add(baseContext);

            statement.Add("T.LVL;");
            expected.Add(7);
            context.Add(baseContext);

            statement.Add("T.DEF-C.ATK;");
            expected.Add(-5);
            context.Add(baseContext);

            for (int i = 0; i < statement.Count; i++)
            {
                lex    = new SkillLexer(statement[i]);
                parser = new SkillParser(lex);
                double actual = Convert.ToDouble(((List <object>)parser.getTree().Execute(context[i]))[0]);
                Assert.AreEqual(expected[i], actual);
            }
        }
예제 #3
0
        public void interpretEffect(string effect)
        {
            SkillLexer  lex    = new SkillLexer(effect);
            SkillParser parser = new SkillParser(lex);

            this.effect = parser.getTree();
        }
예제 #4
0
    public void Tooltip(Vector3 position, Skill skill, string cls, SKILLTYPE skillType)
    {
        //Set Position
        tooltip.transform.localPosition = position +
                                          new Vector3(-960.0f, -540.0f, 0) +
                                          new Vector3(-355.0f, -222.5f, 0);
        if (tooltip.transform.localPosition.y < -540 + 222.5)
        {
            tooltip.transform.localPosition =
                new Vector3(tooltip.transform.localPosition.x, -540 + 222.5f, tooltip.transform.localPosition.z);
        }
        if (tooltip.transform.localPosition.x < -960 + 355.0)
        {
            tooltip.transform.localPosition =
                new Vector3(-960 + 355.0f, tooltip.transform.localPosition.y, tooltip.transform.localPosition.z);
        }

        //TODO : Fill information

        //Set Panel Visible SkillName.GetSkillNameFile(skill.name, cls, type)
        SkillExplain skillExplain = SkillParser.GetSkill(SkillName.GetSkillNameFile(skill.name, cls, skillType), skill.level);

        skillImage.sprite = Resources.Load <Sprite>(skill.image);
        skillName.text    = skillExplain.skillName + " Lv." + skill.level;
        skillSummary.text = skillExplain.explain;
        skillCost.text    = "Cost : " + skillExplain.cost;
        skillAbility.text = skillExplain.ability;
        Utility.ObjectVisibility(tooltipPanel, true);
    }
예제 #5
0
        public void Export()
        {
            string headerFile            = VariableDefines.XML_PATH.Replace(".m2d", ".m2h");
            List <PackFileEntry> files   = FileList.ReadFile(File.OpenRead(headerFile));
            MemoryMappedFile     memFile = MemoryMappedFile.CreateFromFile(VariableDefines.XML_PATH);

            // Parse and save some item data from xml file
            List <SkillMetadata> skills = SkillParser.Parse(memFile, files);

            SkillParser.Write(skills);
        }
예제 #6
0
    public void LoadConfigs()
    {
        StringCache instance = PersistentSingleton <StringCache> .Instance;

        Biomes = BiomeParser.ParseBiomes(instance.Get("biomes"));
        BossChunkGeneratings = ChunkGeneratingParser.ParseChunkGeneratings(instance.Get("boss_chunk_generating"));
        ChunkMaps            = new List <ChunkMapConfig>();
        for (int i = 0; i <= 4; i++)
        {
            ChunkMaps.Add(ChunkMapParser.ParseChunkMap(instance.Get("ChunkMaps/chunk_map_" + i)));
        }
        ChunkGeneratings = ChunkGeneratingParser.ParseChunkGeneratings(instance.Get("chunk_generating"));
        Skills           = SkillParser.ParseSkills(instance.Get("skills"));
        Heroes           = HeroParser.ParseHeros(instance.Get("heros"));
        Boosters         = BoosterParser.ParseBoosters(instance.Get("boosters"));
        string text = instance.Get("perk_milestones");

        PerkMilestones          = PerkMilestoneParser.ParsePerkMilestonesLevels(text);
        PerkMilestoneConfigs    = PerkMilestoneParser.ParsePerkMilestones(text);
        CompanionMiniMilestones = PerkMilestoneParser.ParseMiniMilestones(instance.Get("companion_mini_milestones"));
        HeroMiniMilestones      = PerkMilestoneParser.ParseMiniMilestones(instance.Get("hero_mini_milestones"));
        Tiers             = TierParser.ParseTiers(instance.Get("tiers"));
        Ranks             = TierParser.ParseRanks(instance.Get("ranks"));
        Gears             = GearParser.ParseGears(instance.Get("gears"));
        TutorialGoals     = PlayerGoalParser.ParsePlayerGoals(instance.Get("tutorial_goals"), tutorial: true);
        PlayerGoals       = PlayerGoalParser.ParsePlayerGoals(instance.Get("player_goals"), tutorial: false);
        PlayerGoalRewards = PlayerGoalParser.ParseRewards(instance.Get("goal_rewards"));
        GearSets          = GearParser.ParseGearSets(instance.Get("gear_set"));
        KeyChest          = ChestParser.ParseChests(instance.Get("chests"), ChestEnum.KeyChest);
        BronzeChest       = ChestParser.ParseChests(instance.Get("chests"), ChestEnum.BronzeChest);
        SilverChest       = ChestParser.ParseChests(instance.Get("chests"), ChestEnum.SilverChest);
        GoldChest         = ChestParser.ParseChests(instance.Get("chests"), ChestEnum.GoldChest);
        Crafting          = CraftingParser.ParseCrafting(instance.Get("crafting"));
        CraftingMaterial  = CraftingMaterialParser.ParseCraftingMaterial(instance.Get("crafting_materials"));
        IAPs                 = IAPParser.ParseIAPs(instance.Get("iaps"));
        BundleTiers          = BundleTierParser.ParseBundleTiers(instance.Get("bundle_tiers"));
        AdFrequencies        = AdFrequencyParser.ParseAdFrequencies(instance.Get("Ads/frequencies"));
        Drills               = DrillParser.ParseDrills(instance.Get("drills"));
        Gifts                = GiftParser.ParseGiftRewards(instance.Get("gifts"));
        GpuPerf              = GpuPerfParser.ParseGpuPerf(instance.Get("gpuperf"));
        XPromo               = XPromoParser.ParseXpromo(instance.Get("xpromo"));
        Gamblings            = GamblingParser.ParseGamblings(instance.Get("gambling"));
        Tournaments          = TournamentParser.ParseTournaments(instance.Get("tournaments"));
        TournamentTiers      = TournamentParser.ParseTournamentTiers(instance.Get("tournamentTiers"));
        AdMobZoneData        = NetworkConfigParser.ParseAdMobZoneData();
        UnityZoneData        = NetworkConfigParser.ParseUnityZoneData();
        FacebookFloors       = NetworkConfigParser.ParseFacebookFloors();
        AdColonyFloors       = NetworkConfigParser.ParseAdColonyFloors();
        AdMobZoneMappings    = NetworkConfigParser.ParseAdMobZoneMappings();
        FacebookZoneMappings = NetworkConfigParser.ParseFacebookZoneMappings();
        UnityZoneMappings    = NetworkConfigParser.ParseUnityZoneMappings();
    }
예제 #7
0
        public static void Export(List <PackFileEntry> files, MemoryMappedFile memFile)
        {
            if (Hash.CheckHash(VariableDefines.OUTPUT + "ms2-skill-metadata"))
            {
                Console.WriteLine("\rSkipping skill metadata!");
                return;
            }

            // Parse and save some item data from xml file
            List <SkillMetadata> skills = SkillParser.Parse(memFile, files);

            SkillParser.Write(skills);
            Hash.WriteHash(VariableDefines.OUTPUT + "ms2-skill-metadata");
        }
예제 #8
0
 public ImportFactory(CardParser cardParser, DropParser dropParser, ItemParser itemParser,
                      MapMonsterParser mapMonsterParser,
                      MapNpcParser mapNpcParser, MapParser mapParser, MapTypeMapParser mapTypeMapParser,
                      MapTypeParser mapTypeParser, NpcMonsterParser npcMonsterParser,
                      PortalParser portalParser, RespawnMapTypeParser respawnMapTypeParser,
                      ShopItemParser shopItemParser, ShopParser shopParser, SkillParser skillParser, NpcTalkParser npcTalkParser,
                      QuestPrizeParser questPrizeParser, QuestParser questParser, ActParser actParser, ScriptParser scriptParser,
                      IDao <AccountDto, long> accountDao, IDao <I18NQuestDto, int> i18NQuestDao, IDao <I18NSkillDto, int> i18NSkillDao,
                      IDao <I18NNpcMonsterTalkDto, int> i18NNpcMonsterTalkDao,
                      IDao <I18NNpcMonsterDto, int> i18NNpcMonsterDao, IDao <I18NMapPointDataDto, int> i18NMapPointDataDao,
                      IDao <I18NMapIdDataDto, int> i18NMapIdDataDao,
                      IDao <I18NItemDto, int> i18NItemDao, IDao <I18NBCardDto, int> i18NbCardDao,
                      IDao <I18NCardDto, int> i18NCardDao, IDao <I18NActDescDto, int> i18NActDescDao, ILogger logger)
 {
     _actParser             = actParser;
     _questPrizeParser      = questPrizeParser;
     _questParser           = questParser;
     _cardParser            = cardParser;
     _dropParser            = dropParser;
     _itemParser            = itemParser;
     _mapMonsterParser      = mapMonsterParser;
     _mapNpcParser          = mapNpcParser;
     _mapParser             = mapParser;
     _mapTypeMapParser      = mapTypeMapParser;
     _mapTypeParser         = mapTypeParser;
     _npcMonsterParser      = npcMonsterParser;
     _portalParser          = portalParser;
     _respawnMapTypeParser  = respawnMapTypeParser;
     _shopItemParser        = shopItemParser;
     _shopParser            = shopParser;
     _scriptParser          = scriptParser;
     _skillParser           = skillParser;
     _npcTalkParser         = npcTalkParser;
     _accountDao            = accountDao;
     _i18NQuestDao          = i18NQuestDao;
     _i18NSkillDao          = i18NSkillDao;
     _i18NNpcMonsterTalkDao = i18NNpcMonsterTalkDao;
     _i18NNpcMonsterDao     = i18NNpcMonsterDao;
     _i18NMapPointDataDao   = i18NMapPointDataDao;
     _i18NMapIdDataDao      = i18NMapIdDataDao;
     _i18NItemDao           = i18NItemDao;
     _i18NbCardDao          = i18NbCardDao;
     _i18NCardDao           = i18NCardDao;
     _i18NActDescDao        = i18NActDescDao;
     _logger = logger;
 }
예제 #9
0
    private void ParseSkill()
    {
        _skillDic = new Dictionary <int, SkillParser>();
        TableHandler handler = TableHandler.OpenFromResmap("Skill");

        for (int i = 0; i < handler.GetRecordsNum() - 1; i++)
        {
            int         key  = int.Parse(handler.GetValue(i, 0));
            SkillParser info = new SkillParser()
            {
                sn           = int.Parse(handler.GetValue(i, 0)),
                cd           = int.Parse(handler.GetValue(i, 1)),
                type         = int.Parse(handler.GetValue(i, 2)),
                launcherList = ToIntArray(handler.GetValue(i, 3)),
                ftlName      = ToStringArray(handler.GetValue(i, 4)),
            };
        }
    }
예제 #10
0
 public ImportFactory(CardParser cardParser, DropParser dropParser, I18NParser i18NParser, ItemParser itemParser, MapMonsterParser mapMonsterParser,
                      MapNpcParser mapNpcParser, MapParser mapParser, MapTypeMapParser mapTypeMapParser, MapTypeParser mapTypeParser, NpcMonsterParser npcMonsterParser,
                      PortalParser portalParser, RespawnMapTypeParser respawnMapTypeParser,
                      ShopItemParser shopItemParser, ShopParser shopParser, SkillParser skillParser, IGenericDao <AccountDto> accountDao)
 {
     _cardParser           = cardParser;
     _dropParser           = dropParser;
     _i18NParser           = i18NParser;
     _itemParser           = itemParser;
     _mapMonsterParser     = mapMonsterParser;
     _mapNpcParser         = mapNpcParser;
     _mapParser            = mapParser;
     _mapTypeMapParser     = mapTypeMapParser;
     _mapTypeParser        = mapTypeParser;
     _npcMonsterParser     = npcMonsterParser;
     _portalParser         = portalParser;
     _respawnMapTypeParser = respawnMapTypeParser;
     _shopItemParser       = shopItemParser;
     _shopParser           = shopParser;
     _skillParser          = skillParser;
     _accountDao           = accountDao;
 }
예제 #11
0
        public void TestSkillLanguage_Maths()
        {
            List <string> statement = new List <string>();
            List <double> expected  = new List <double>();
            SkillLexer    lex;
            SkillParser   parser;

            statement.Add("1+2;");
            expected.Add(3.0);

            statement.Add("2*2;");
            expected.Add(4);

            statement.Add("4/2;");
            expected.Add(2);

            statement.Add("1+2+3+4;");
            expected.Add(10);

            statement.Add("4/2*2;");
            expected.Add(4);

            statement.Add("2.2+1;");
            expected.Add(3.2);

            statement.Add("2^3;");
            expected.Add(8);

            for (int i = 0; i < statement.Count; i++)
            {
                lex    = new SkillLexer(statement[i]);
                parser = new SkillParser(lex);
                double actual = Convert.ToDouble(((List <object>)parser.getTree().Execute(new SkillContext()))[0]);
                Assert.AreEqual(expected[i], actual);
            }
        }
예제 #12
0
 public Skill(int skillSn)
 {
     skillParser = Data.Inst.Skill(skillSn);
     cdTime      = skillParser.cd; //初始为未cd状态
 }