コード例 #1
0
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            player_maxmp = player.GetMaxmp();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(((2 * player_level + 50)));
            victim.SetTime(((88000 * D2INT((zrand(3 * skill_level + 100)) / 100) + 2000)));
            victim.SetValue(0.0f);
            victim.SetSleep(true);
            victim.SetProbability(3.0f);
            victim.SetTime(90000.0f);
            victim.SetBuffid(1);
            victim.SetAmount(((90000 * skill_level)));
            victim.SetValue(player_maxmp);
            victim.SetMpleak(true);
            victim.SetProbability(3.0f);
            victim.SetTime(90000.0f);
            victim.SetRatio((skill_level * 0.3f));
            victim.SetBuffid(1);
            victim.SetDecdefence(true);
            victim.SetProbability(3.0f);
            victim.SetTime(90000.0f);
            victim.SetRatio((skill_level * 0.3f));
            victim.SetBuffid(1);
            victim.SetDecaccuracy(true);
            return(true);
        }
コード例 #2
0
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            player_maxhp = player.GetMaxhp();

            victim.SetProbability(100.0f);
            victim.SetTime(100.0f);
            victim.SetBuffid(1);
            victim.SetAmount((player_maxhp * 0.25f));
            victim.SetValue(0.0f);
            victim.SetHpleak(true);
            victim.SetProbability(100.0f);
            victim.SetTime(16000.0f);
            victim.SetBuffid(1);
            victim.SetValue(((2 * player_level)));
            victim.SetSubdefence(true);
            victim.SetProbability(100.0f);
            victim.SetTime(16000.0f);
            victim.SetBuffid(1);
            victim.SetValue(((2 * player_level)));
            victim.SetSubattack(true);
            victim.SetTime(3000.0f);
            victim.SetBuffid(0);
            victim.SetGloss(true);
            return(true);
        }
コード例 #3
0
            public override void Calculate(GSkill skill)
            {
                GPlayerWrapper player       = skill.GetPlayer();
                int            player_level = player.GetLevel();
                int            skill_level  = skill.GetLevel();

                skill.SetRatio((D2INT(player_level / (12 - skill_level)) * 0.01f + (skill_level * 0.01f + 1.0f)));
                skill.SetPlus(((10 * skill_level)));
                player.SetPerform(1);
            }
コード例 #4
0
            public override void Calculate(GSkill skill)
            {
                GPlayerWrapper player       = skill.GetPlayer();
                int            player_level = player.GetLevel();
                int            skill_level  = skill.GetLevel();
                int            skill_t0     = skill.GetT0();

                skill.SetPlus((((20 * skill_level + 50) * norm(30 / player_level) + (5 * (skill_level * skill_t0 + skill_level)) + 40)));
                player.SetPerform(1);
            }
コード例 #5
0
        public override bool TakeEffect(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();
            int            skill_t0     = skill.GetT0();

            player.SetPasadddefence((skill_level * (player_level * 0.15f)));
            player.SetPasadddodge(((2 * skill_t0 * skill_level)));
            return(true);
        }
コード例 #6
0
        public override bool TakeEffect(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();
            int            skill_t0     = skill.GetT0();

            player.SetPasaddattack((skill_level * (player_level * 0.2f)));
            player.SetPasaddaccuracy(((3 * skill_level * skill_t0)));
            return(true);
        }
コード例 #7
0
            public override void Calculate(GSkill skill)
            {
                GPlayerWrapper player       = skill.GetPlayer();
                int            player_level = player.GetLevel();
                int            player_def   = player.GetDef();
                int            skill_level  = skill.GetLevel();
                int            skill_t0     = skill.GetT0();
                int            skill_t1     = skill.GetT1();

                skill.SetRatio((D2INT(player_level / (9 - skill_level)) * 0.01f + (skill_level * 0.06f + (skill_t0 * 0.1f + 1.0f))));
                skill.SetPlus((player_def * (skill_t1 * 0.03f) + ((215 * skill_level))));
                player.SetPerform(1);
            }
コード例 #8
0
        public override bool TakeEffect(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();
            int            skill_t0     = skill.GetT0();
            int            skill_t1     = skill.GetT1();

            player.SetPasaddhp((player_level * (skill_level * 0.95f)));
            player.SetPasaddmp(((skill_t0 * 0.3f + 1.0f) * (player_level * (skill_level * 0.95f))));
            player.SetPasinccrit((skill_level * (skill_t1 * 0.002f) + 0.0001f));
            return(true);
        }
コード例 #9
0
        public override bool TakeEffect(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();
            int            skill_t0     = skill.GetT0();
            int            skill_t1     = skill.GetT1();

            player.SetPasaddattack(skill_level * (player_level * 0.1f));
            player.SetPasincattack((skill_level / 2) * (skill_t0 * 0.01f));
            player.SetPasadddefence(skill_level * skill_t1);
            return(true);
        }
コード例 #10
0
ファイル: Skill4260.cs プロジェクト: amusegame/sdk
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();
            int            skill_t0     = skill.GetT0();

            victim.SetProbability(((1.0f - player_level * 0.002f) * ((2 * skill_t0 + (5 * skill_level) + 35))));
            victim.SetTime(((4000 * skill_level + 4100)));
            victim.SetBarehanded(true);
            return(true);
        }
コード例 #11
0
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(100.0f);
            victim.SetTime(((3000 * norm(skill_level / 30) + 5300)));
            victim.SetBuffid(7);
            victim.SetValue(((norm((skill_level / 60)) + 1) * (player_level * (skill_level * 0.01f) + 1.0f)));
            victim.SetSubattack(true);
            return(true);
        }
コード例 #12
0
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(100.0f);
            victim.SetTime(((5000 * skill_level)));
            victim.SetBuffid(1);
            victim.SetValue(((player_level * skill_level)));
            victim.SetSubdefence(true);
            return(true);
        }
コード例 #13
0
ファイル: Skill650.cs プロジェクト: amusegame/sdk
        public override bool BlessMe(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(100.0f);
            victim.SetTime(4500.0f);
            victim.SetBuffid(1);
            victim.SetValue(((skill_level * player_level)));
            victim.SetAddattack(true);
            return(true);
        }
コード例 #14
0
ファイル: Skill4260.cs プロジェクト: amusegame/sdk
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(100.0f);
            victim.SetTime(100.0f);
            victim.SetBuffid(0);
            victim.SetAmount((((player_level * (skill_level * skill_level + (5 * skill_level))) * norm(((5 * skill_level + 125) / player_level)))));
            victim.SetValue(0.0f);
            victim.SetHpleak(true);
            return(true);
        }
コード例 #15
0
ファイル: Skill4160.cs プロジェクト: amusegame/sdk
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(((4 * skill_level + 20)));
            victim.SetTime(((3000 * skill_level + 10000)));
            victim.SetRatio(1.0f);
            victim.SetAmount(10.0f);
            victim.SetValue(((player_level * skill_level)));
            victim.SetFrenzied(true);
            return(true);
        }
コード例 #16
0
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(1000.0f);
            victim.SetTime(1800000.0f);
            victim.SetRatio((skill_level * 0.01f));
            victim.SetBuffid(1);
            victim.SetAmount((skill_level * (player_level * 0.5f)));
            victim.SetValue((skill_level * (player_level * 0.5f)));
            victim.SetDrunk(true);
            return(true);
        }
コード例 #17
0
ファイル: Skill470.cs プロジェクト: yi-zhu/gnp
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(100.0f);
            victim.SetRatio(0.0f);
            victim.SetValue(((2 * skill_level * player_level + 200)));
            victim.SetHeal(true);
            victim.SetTime(2000.0f);
            victim.SetBuffid(0);
            victim.SetGloss(true);
            return(true);
        }
コード例 #18
0
ファイル: Skill4260.cs プロジェクト: amusegame/sdk
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();
            int            skill_t0     = skill.GetT0();

            victim.SetProbability(((1.0f - player_level * 0.002f) * 100.0f));
            victim.SetTime(100.0f);
            victim.SetBuffid(0);
            victim.SetAmount(((250 * skill_t0 + (zrand(100 * skill_level * skill_level + (250 * skill_level))) + 1)));
            victim.SetValue(0.0f);
            victim.SetHpleak(true);
            return(true);
        }
コード例 #19
0
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            /*
             * victim.SetProbability(120.0f);
             * victim.SetTime(3600000.0f);
             * victim.SetBuffid(3);
             * victim.SetValue((player_level + 50.0f));
             * victim.SetAddattack(true);
             * if ( skill_level == 1 )
             * v35 = 30.0f;
             * else
             * victim.SetProbability(99.0f);
             * victim.SetRatio(0.0f);
             * if ( skill_level == 1 )
             * v34 = 1.0f;
             * else
             * victim.SetAmount(((zrand(2) + 1)));
             * victim.SetValue(32934.0f);
             * victim.SetCreateitem(true);
             * if ( skill_level == 1 )
             * v33 = 120.0f;
             * else
             * victim.SetProbability(0.0f);
             * victim.SetTime(3600000.0f);
             * victim.SetRatio(0.0f);
             * victim.SetBuffid(3);
             * victim.SetAmount(0.0f);
             * victim.SetValue(((player_level * 0.2f + 5.0f) * 1800.0f));
             * victim.SetHpgen(true);
             * if ( skill_level == 2 )
             * v32 = 120.0f;
             * else
             * victim.SetProbability(0.0f);
             * victim.SetTime(3600000.0f);
             * victim.SetBuffid(3);
             * victim.SetAmount(0.0f);
             * victim.SetValue(((player_level * 0.2f + 5.0f) * 1800.0f));
             * victim.SetMpgen(true);
             */
            return(true);
        }
コード例 #20
0
ファイル: Skill4330.cs プロジェクト: amusegame/sdk
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            player_maxmp = player.GetMaxmp();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(((1.0f - player_level * 0.002f) * ((skill_level * skill_level + (3 * skill_level)))));
            victim.SetRatio(1.0f);
            victim.SetDrainmagic(true);
            victim.SetProbability(((1.0f - player_level * 0.002f) * 100.0f));
            victim.SetTime(33000.0f);
            victim.SetBuffid(5);
            victim.SetAmount((player_maxmp * (skill_level * (skill_level * 0.02f)) * 16.0f));
            victim.SetValue(0.0f);
            victim.SetMpleak(true);
            return(true);
        }
コード例 #21
0
ファイル: Skill4270.cs プロジェクト: amusegame/sdk
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            player_hp    = player.GetHp();
            int            player_var1  = player.GetVar1();
            int            player_var11 = player.GetVar11();
            int            skill_level  = skill.GetLevel();

            /*
             * if ( player_var11 == 29 )
             * {
             * d = (1.0f - player_level * 0.002f) * 100.0f;
             * }
             * else
             * {
             * d = 33.0f;
             * }
             * victim.SetProbability(d);
             * victim.SetTime(((4000 * skill_level)));
             * victim.SetBuffid(1);
             * victim.SetAmount(((6 * skill_level * skill_level + (5 * skill_level) + 25) * (player_hp * 0.01f)));
             * victim.SetValue(0.0f);
             * victim.SetHpleak(true);
             * if ( player_var11 == 29 )
             * {
             * v29 = (1.0f - player_level * 0.002f) * 100.0f;
             * }
             * else
             * {
             * v29 = 33.0f;
             * }
             * victim.SetProbability(v29);
             * victim.SetTime(((4000 * skill_level)));
             * victim.SetBuffid(1);
             * victim.SetAmount(1.0f);
             * victim.SetValue(((100 * skill_level * skill_level + (900 * skill_level))));
             * victim.SetSubmp(true);
             */
            return(true);
        }
コード例 #22
0
ファイル: Skill470.cs プロジェクト: yi-zhu/gnp
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            victim.SetProbability(10.0f);
            victim.SetTime(300000.0f);
            victim.SetRatio((skill_level * 0.2f));
            victim.SetBuffid(2);
            victim.SetAmount(((30 * skill_level)));
            victim.SetValue(((5 * player_level)));
            victim.SetDrunk(true);
            victim.SetProbability(-1.0f);
            victim.SetTime(5000.0f);
            victim.SetValue(0.0f);
            victim.SetSleep(true);
            return(true);
        }
コード例 #23
0
ファイル: Skill5280.cs プロジェクト: amusegame/sdk
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            player_hp    = player.GetHp();

            /*
             * if ( player_level == 6 )
             * d = 120.0f;
             * else
             * victim.SetProbability(0.0f);
             * victim.SetTime(20.0f);
             * victim.SetBuffid(0);
             * victim.SetAmount((player_hp * 0.33f));
             * victim.SetValue(0.0f);
             * victim.SetHpleak(true);
             */
            return(true);
        }
コード例 #24
0
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            skill_level  = skill.GetLevel();

            /*
             * if ( player.GetHasmultbuff(5) == 1 )
             * d = 100.0f;
             * else
             * victim.SetProbability(0.0f);
             * victim.SetTime(4100.0f);
             * victim.SetBuffid(1);
             * victim.SetAmount(((10 * skill_level * player_level)));
             * victim.SetValue(0.0f);
             * victim.SetHpleak(true);
             */
            return(true);
        }
コード例 #25
0
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();

            /*
             * if ( zrand(100) <= 10 )
             * {
             * d = (24 * ((norm((player_level + 0.05f) / 160.0f)) - norm((player_level + 0.05f) / 161.0f)));
             * }
             * else
             * {
             * d = (8 * ((norm((player_level + 0.05f) / 160.0f)) - norm((player_level + 0.05f) / 161.0f)));
             * }
             * victim.SetRatio(d);
             * victim.SetAmount(0.0f);
             * victim.SetValue((((norm((player_level + 0.05f) / 160.0f)) - norm((player_level + 0.05f) / 161.0f))));
             * victim.SetSecondattack(true);
             */
            return(true);
        }
コード例 #26
0
ファイル: Skill670.cs プロジェクト: amusegame/sdk
        public override bool StateAttack(GSkill skill)
        {
            GPlayerWrapper player       = skill.GetPlayer();
            GPlayerWrapper victim       = skill.GetVictim();
            int            player_level = player.GetLevel();
            int            player_hp    = player.GetHp();
            int            player_maxhp = player.GetMaxhp();
            int            player_mp    = player.GetMp();
            int            player_maxmp = player.GetMaxmp();
            int            skill_level  = skill.GetLevel();

            victim.SetTime(((5000 * skill_level + 15000)));
            victim.SetRatio((skill_level * 0.15f + 0.35f));
            victim.SetAmount(4.0f);
            victim.SetValue(((2 * skill_level + 8)));
            victim.SetFocusanti(true);
            victim.SetProbability(100.0f);
            victim.SetTime(((5000 * skill_level)));
            victim.SetBuffid(0);
            victim.SetValue(((player_level * 0.002f + (skill_level * 0.05f)) * ((((player_maxmp + player_maxhp) - player_hp) - player_mp)) + 1.0f));
            victim.SetAdddefence(true);
            return(true);
        }
コード例 #27
0
ファイル: Skill3990.cs プロジェクト: amusegame/sdk
            public override void Calculate(GSkill skill)
            {
                GPlayerWrapper player       = skill.GetPlayer();
                int            player_level = player.GetLevel();
                int            player_maxmp = player.GetMaxmp();
                int            skill_level  = skill.GetLevel();

                float pp;
                float p = 0.002f * player_maxmp;

                if (player.GetSkilllevel(4011) >= skill_level)
                {
                    pp = skill_level * p;
                }
                else
                {
                    pp = player.GetSkilllevel(4011) * p;
                }
                skill.SetPlus((((20 * skill_level + 50) * norm(30 / player_level)) + (5 * skill_level + 10) + pp));
                player.SetPerform(1);
                /**/
            }
        }
        public GSkill3997Stub()
            : base(3997)
        {
            occupation           = 56;
            maxlevel             = 8;
            maxlearn             = 6;
            eventflag            = 0;
            spcost               = 1;
            reborncount          = 0;
            type                 = 1;
            timetype             = 0;
            targettype           = 0;
            rangetype            = 0;
            doenchant            = false;
            dobless              = false;
            autoattack           = true;
            allowform            = 0;
            credittype           = 0;
            clearmask            = 0;
            skill_limit          = 0;
            skillelemsnum        = 0;
            skillelemsfactor     = 0.000000f;
            serialskill          = 0;
            charge               = 0;
            chargedist           = 0.000000f;
            succeedskillcolor    = 1;
            succeedskillcolornum = 1;
            comboskill           = 0;
            need_item            = false;
            item1_id             = -1;
            item1_num            = 0;
            item2_id             = -1;
            item2_num            = 0;
            item_relation        = 0;
            weapon_limit         = 9;
            SetAction(0, "ÐùÔ¯_·Éµ¯");
            SetAction(1, "0");
            SetAction(2, "0");
            SetAction(3, "0");
            SetAction(4, "0");
            SetAction(5, "0");
            SetAction(6, "0");
            SetAction(7, "0");
            SetAction(8, "0");
            SetAction(9, "ÐùÔ¯_·Éµ¯");
            SetAction(10, "0");
            SetAction(11, "0");
            SetAction(12, "0");
            SetAction(13, "");
            SetAction(14, "");
            SetAction(15, "");
            SetAction(16, "");
            SetAction(17, "");
            SetAction(18, "ÐùÔ¯_Æï³Ë_·Éµ¯");
            SetAction(19, "0");
            SetAction(20, "0");
            SetAction(21, "0");
            SetAction(22, "0");
            SetAction(23, "0");
            SetAction(24, "0");
            SetAction(25, "0");
            SetAction(26, "0");
            SetAction(27, "ÐùÔ¯_Æï³Ë_·Éµ¯");
            SetAction(28, "0");
            SetAction(29, "0");
            SetAction(30, "0");
            name       = "¾»Äù¡¤Ë·ÐÇ";
            nativename = "¾»Äù¡¤Ë·ÐÇ";
            icon       = "¾»Äù¡¤Ë·ÐÇ.dds";
            SetTalent(0, 4149);
            SetTalent(1, 0);
            SetTalent(2, 0);
            SetTalent(3, 0);
            SetTalent(4, 0);
            SetTalent(5, 0);
            SetTalent(6, 0);
            SetTalent(7, 0);
            talent_size       = 1;
            talent_type       = 0;
            use_proficiency   = false;
            inc_proficiency   = 0;
            preskillnum       = 0;
            cycle             = false;
            cyclemode         = 0;
            cyclegfx          = "";
            skill_class       = 11;
            guide             = false;
            summon_id         = -1;
            trigger           = false;
            conbutton_sub     = false;
            isBabySkill       = false;
            castInPreSkill    = false;
            preCastSkillId    = -1;
            darkLightType     = 0;
            followskill       = 0;
            targetcnt         = 0;
            excludemonstercnt = 0;

            AddState(new GState1());
            AddState(new GState2());
        }

        public override int GetExecutetime(GSkill skill)
        {
            return(1075);
        }

        public override int GetCooldowntime(GSkill skill)
        {
            return(200);
        }

        public override int GetEnmity(GSkill skill)
        {
            return(1);
        }

        public override int GetRequiredLevel(int level)
        {
            int[] array = { 1, 3, 5, 7, 9, 11 }; return(array[level - 1]);
        }

        public override float GetPraydistance(GSkill skill)
        {
            int skill_t0 = skill.GetT0();

            return(2 * skill_t0 + 17);
        }

        public override float GetCastdistance(GSkill skill)
        {
            int skill_t0 = skill.GetT0();

            return(2 * skill_t0 + 15);
        }

        public override float GetEffectdistance(GSkill skill)
        {
            int skill_t0 = skill.GetT0();

            return(2 * skill_t0 + 20);
        }

        public override float GetMpcost(GSkill skill)
        {
            return(10.000000f);
        }
    }
    public class GSkill3997 : GSkill
    {
        public GSkill3997()
            : base(3997)
        {
        }
    }
    public class GSkill3998Stub : GSkillStub
    {
        public class GState1 : GState
        {
            public override int GetTime(GSkill skill)
            {
                return(425);
            }

            public override void Calculate(GSkill skill)
            {
                GPlayerWrapper player = skill.GetPlayer();

                player.SetPray(1);
            }

            public override bool Cancel(GSkill skill)
            {
                return(true);
            }
        }
        public class GState2 : GState
        {
            public override int GetTime(GSkill skill)
            {
                return(450);
            }

            public override void Calculate(GSkill skill)
            {
                GPlayerWrapper player       = skill.GetPlayer();
                int            player_mp    = player.GetMp();
                int            player_maxmp = player.GetMaxmp();
                int            player_var1  = player.GetVar1();

                /*
                 * if ( player_mp >= player_maxmp / 10 )
                 * {
                 * v = player_maxmp / 10;
                 * }
                 * else
                 * {
                 * v = player_mp;
                 * }
                 * player.SetVar1(v);
                 * player.SetMp(((player_mp - player_var1)));
                 * player.SetPerform(1);
                 */
            }