コード例 #1
0
ファイル: Skill_DRAX30A.cs プロジェクト: rogeryuan99/Hello
    public override IEnumerator Cast(ArrayList objs)
    {
        GameObject scene = objs[0] as GameObject;
        GameObject caller = objs[1] as GameObject;
        GameObject target = objs[2] as GameObject;

        this.objs = objs;

        Drax drax = caller.GetComponent<Drax>();

        SkillDef skillDef = SkillLib.instance.getSkillDefBySkillID("DRAX30A");
        int skillDurationTime = skillDef.skillDurationTime;
        drax.castSkill("Skill30");
        drax.attackAnimaName = "Skill30A";
        drax.showSkill30EftCallback += showEft;
        drax.showSkill30BodyEftCallback += showBodyEft;
        drax.attackAnimaEvent += Skill_DRAX30AEffect;

        drax.addBuff("Skill_DRAX30A", skillDurationTime + 5, 0, BuffTypes.ATK_PHY, cancelSkill_DRAX30AEffect);

        this.drax = drax;

        yield return new WaitForSeconds(0.5f);
        MusicManager.playEffectMusic("SFX_Drax_Common_1a");
    }
コード例 #2
0
ファイル: Skill_DRAX1.cs プロジェクト: rogeryuan99/Hello
 public override IEnumerator Cast(ArrayList objs)
 {
     GameObject caller = objs[1] as GameObject;
     GameObject target = objs[2] as GameObject;
     drax = caller.GetComponent<Drax>();
     if(Vector3.Distance(caller.transform.position, target.transform.position) > drax.data.attackRange + 10.0f)
     {
         drax.moveToTarget(target);
         BattleObjects.skHero.PushSkillIdToContainer("DRAX1");// DRAX1
         yield break;
     }
     this.objs = objs;
     drax.toward(target.transform.position);
     drax.damageCallback = DamageEnemy;
     drax.movingUpdateCallback = SwitchMoving;
     drax.AnimationFinishedCallback = (animName) => {
         bool isFinished = false;
         if (animName != "SkillA_a" && animName != "SkillA_b"){
             isUpdateMoving = false;
             isFinished = true;
         }
         return isFinished;
     };
     v = caller.transform.position.x <= target.transform.position.x? 1000: -1000f;
     drax.castSkill("SkillA_a");
     yield return new WaitForSeconds(.33f);
     MusicManager.playEffectMusic("SFX_Drax_DualKnifeStrike_1a");
 }
コード例 #3
0
ファイル: Skill_DRAX15A.cs プロジェクト: rogeryuan99/Hello
    public void Skill_DRAX15AEffect(Drax drax, Character target)
    {
        SkillDef skillDef = SkillLib.instance.getSkillDefBySkillID("DRAX15A");
        Hashtable tempNumber = skillDef.activeEffectTable;

        int time = skillDef.skillDurationTime;

        int damage = target.getSkillDamageValue(drax.realAtk, ((Effect)tempNumber["atk_PHY"]).num);//(int)((((Effect)tempNumber["atk_PHY"]).num / 100.0f + 1.0f) * drax.realAtk.PHY);

        //		target.layDownWithSeconds();

        State s = new State(time, null);
        target.addAbnormalState(s, Character.ABNORMAL_NUM.LAYDOWN);
        DestroyBuffEft(drax, "Skill_DRAX15A");

        target.realDamage(damage);
    }
コード例 #4
0
ファイル: Skill_DRAX5B.cs プロジェクト: rogeryuan99/Hello
    public void Skill_DRAX5BEffect(Drax drax, Character target)
    {
        if(target.getIsDead())
        {
            return;
        }
        drax.attackAnimaEvent -= Skill_DRAX5BEffect;

        Debug.LogError("Skill_DRAX5BEffect");

        SkillDef skillDef = SkillLib.instance.getSkillDefBySkillID("DRAX5B");

        Hashtable tempNumber = skillDef.activeEffectTable;
        int time = skillDef.buffDurationTime;
        float per = ((Effect)skillDef.buffEffectTable["hp"]).num;
        int hp = (int)((per / 100.0f + 1.0f) * drax.realMaxHp);
        target.addBuff("Skill_DRAX5B", time, (float)hp/(float)time, BuffTypes.DE_HP);

        DestroyBuffEft(drax, "Skill_DRAX5B");
    }
コード例 #5
0
ファイル: Skill_DRAX30A.cs プロジェクト: rogeryuan99/Hello
    public void Skill_DRAX30AEffect(Drax drax, Character target)
    {
        MusicManager.playEffectMusic("SFX_Drax_The_Destroyer_1a");
        SkillDef skillDef = SkillLib.instance.getSkillDefBySkillID("DRAX30A");
        int skillDurationTime = skillDef.skillDurationTime;
        int buffDurationTime = skillDef.buffDurationTime;
        Hashtable buffTable = skillDef.buffEffectTable;

        float per = ((Effect)buffTable["hp"]).num;
        int hp = (int)(target.realMaxHp * (per / 100.0f));

        if(StaticData.computeChance(50, 100))
        {
            target.addBuff("Skill_DRAX30A_DE_HP", buffDurationTime, hp / buffDurationTime, BuffTypes.DE_HP);
        //			target.layDownWithSeconds();

            State s = new State(skillDurationTime, null);
            target.addAbnormalState(s, Character.ABNORMAL_NUM.LAYDOWN);
        }

        target.defenseAtk(drax.realAtk, drax.gameObject);
    }