Esempio n. 1
0
    /// <summary>
    /// プレイヤーのHPを徐々に回復させる「リジェネ」
    /// </summary>
    /// <param name="player"></param>
    private void Regene(GameObject player)
    {
        // リジェネのスキルを取得する
        SkillBase regeneSkill = SkillControl.GetSkill("リジェネ");

        if (player)
        {
            // プレイヤーのスクリプトを取得する
            PlayerChar playerChar = player.GetComponent <PlayerChar>();
            // playerがプレイヤーならば
            if (player)
            {
                // 回復量を計算する
                int healHP = (int)((float)playerChar.GetPlayerData().MaxHP *(regeneSkill.GetBonus() + regeneSkill.attack));
                // 効果時間を計算する
                float skillTime = 20 + regeneSkill.GetLv() * 5;
                // 回復する時間を計算する
                float healTime = 5f - regeneSkill.GetLv() * 0.2f;
                // リジェネを発動させる
                photonView.RPC("GenerationRegeneration", player.GetPhotonView().owner, healHP, skillTime, healTime);
                return;
            }
        }
        // 回復量を計算する
        int healHp = (int)((float)playerData.MaxHP * (regeneSkill.GetBonus() + regeneSkill.attack));
        // 効果時間を計算する
        float skillTimer = 20 + regeneSkill.level * 5;
        // 回復する時間を計算する
        float healTimer = 5f - regeneSkill.level * 0.5f;

        // リジェネを発動する
        GenerationRegeneration(healHp, skillTimer, healTimer);
    }
Esempio n. 2
0
    /// <summary>
    /// ヒール
    /// </summary>
    /// <param name="player">回復させるプレイヤーオブジェクト</param>
    private void Heal(GameObject player)
    {
        // ヒールのスキルを取得する
        SkillBase healSkill = SkillControl.GetSkill("ヒール");

        // プレイヤーが存在すれば
        if (player)
        {
            // プレイヤーの情報を取得する
            PlayerChar playerChar = player.GetComponent <PlayerChar>();
            // プレイヤーが取得できれば
            if (playerChar)
            {
                // そのプレイヤーの場所に回復エフェクトを表示させる
                PhotonNetwork.Instantiate("Magics/HealEffect", player.transform.position + Vector3.up * 1f, Quaternion.identity, 0);
                // 回復させるHPの量を計算する
                int recoverHP = (int)((float)playerChar.GetPlayerData().MaxHP *(healSkill.GetBonus() + healSkill.attack));
                // そのプレイヤーのHPを回復させる
                gameObject.GetPhotonView().RPC("Recover", player.GetPhotonView().owner, recoverHP);
                // 処理が完了したので抜ける
                return;
            }
        }
        // 自分の位置に回復エフェクトを表示させる
        PhotonNetwork.Instantiate("Magics/HealEffect", gameObject.transform.position + Vector3.up * 1f, Quaternion.identity, 0);
        // 自分のHPを回復する
        Recover((int)((float)playerData.MaxHP * (healSkill.GetBonus() + healSkill.attack)));
    }
Esempio n. 3
0
        /// <summary>
        /// Evaluate the specified ISkillBinding and update the specified ResultItem with the outcome
        /// </summary>
        /// <param name="binding"></param>
        /// <param name="control"></param>
        /// <returns></returns>
        private async Task EvaluateBindingAsync(ISkillBinding binding, SkillControl control)
        {
            // Take a lock for using a skill if one is available, or wait if not
            m_evaluationLock.Wait();

            try
            {
                var baseTime = (float)m_perfWatch.ElapsedTicks / Stopwatch.Frequency * 1000f;

                // Evaluate binding
                await m_currentSkillWrapper.Skill.EvaluateAsync(binding);

                // Record evaluation time for display
                control.EvalTime = (float)m_perfWatch.ElapsedTicks / Stopwatch.Frequency * 1000f - baseTime;

                m_evaluationLock.Release();
            }
            catch (Exception ex)
            {
                NotifyUser(ex.Message, NotifyType.ErrorMessage);

                m_bindingLock.Release();

                m_evaluationLock.Release();
                return;
            }

            m_bindingLock.Release();
        }
Esempio n. 4
0
    private void Awake()
    {
        Instance = this;

        this.transform.Find("skill1").localScale = new Vector3(0, 1, 1);
        this.transform.Find("skill2").localScale = new Vector3(0, 1, 1);
    }
Esempio n. 5
0
    public override void StartEffect()
    {
        base.StartEffect();
        SkillControl S   = TargetEmp.InfoA.GC.SC;
        int          num = S.Dices.Count - S.SelectedDices.Count;

        S.CurrentPoint += (num * 3);
    }
        void skillComponent_SkillChosen(object sender, EventArgs e)
        {
            SkillControl incoming = sender as SkillControl;

            if (incoming != null)
            {
                refreshButtons();
                refreshStatusText();
            }
        }
Esempio n. 7
0
 private void useSkillFromInput(IControllable character, SkillControl skillControll, KeyCode skillKey)
 {
     if (skillControll.IsSkillAvailable() && Input.GetKeyUp(skillKey))
     {
         if (character.UseSkill(skillControll.Skill))
         {
             skillControll.SkillUsed();
         }
     }
 }
Esempio n. 8
0
    /// <summary>
    /// 自分のMPを回復する「エーテルフロー」
    /// </summary>
    private void EtherFlow()
    {
        // エフェクトを表示する
        // PhotonNetwork.Instantiate("Magics/Ether", transform.position, Quaternion.identify, 0);
        // エーテルフローのスキルをゲットする
        SkillBase etherFlow = SkillControl.GetSkill("エーテルフロー");

        // SPを回復させる
        SP += (int)((float)playerData.MaxSP * etherFlow.GetAttack());
    }
Esempio n. 9
0
    /// <summary>
    /// 挑発 (攻撃力上昇系)
    /// </summary>
    public void Prov()
    {
        SkillBase prov = SkillControl.GetSkill("挑発");

        // 再生させるアニメーションを指定する
        SetTrigger("Buffs");
        this.Hate = (int)prov.GetAttack();
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 10
0
    /// <summary>
    /// 発勁(回復系)
    /// </summary>
    public void Hakei()
    {
        SkillBase hakei = SkillControl.GetSkill("発勁");

        // 再生させるアニメーションを指定する
        this.SetTrigger("Stance");
        // Sp回復
        SP += (int)((float)playerData.MaxSP * (hakei.GetBonus() + hakei.GetDefence()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 11
0
    /// <summary>
    /// 練気(回復系)
    /// </summary>
    public void Renki()
    {
        SkillBase renki = SkillControl.GetSkill("練気");

        // 再生させるアニメーションを指定する
        this.SetTrigger("Stance");
        // Hp回復
        Recover((int)((float)playerData.MaxHP * (renki.GetBonus() + renki.GetDefence())));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 12
0
    /// <summary>
    /// 紅蓮の構え (攻撃力上昇系)
    /// </summary>
    public void StanceGlen()
    {
        SkillBase stance_G = SkillControl.GetSkill("紅蓮の構え");

        // 再生させるアニメーションを指定する
        this.SetTrigger("Stance");
        // 攻撃力アップ
        StartCoroutine(StrBuff(stance_G.GetAttack(), stance_G.GetEffectTime()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 13
0
    /// <summary>
    ///  (移動速度上昇系)
    /// </summary>
    public void StanceGale()
    {
        SkillBase stance_G = SkillControl.GetSkill("疾風の構え");

        // 再生させるアニメーションを指定する
        this.SetTrigger("Stance");
        // 移動速度上昇
        StartCoroutine(this.SpeedBuf(stance_G.GetAttack(), stance_G.GetEffectTime()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 14
0
 // Call this method once per every frame.
 void Update()
 {
     // スキルのフラグがオフならば
     if (!skillFlag)
     {
         // クリックされたら
         if (Input.GetMouseButtonDown(0))
         {
             // その画像の上にマウスの座標があるなら
             if (col.OverlapPoint(Input.mousePosition))
             {
                 GameObject obj = GameObject.Instantiate(this.gameObject); // 自分を複製する
                 obj.AddComponent <MoveSprite>();                          // 移動用スクリプトをアタッチする
                 obj.GetComponent <DuplicateSprite>().enabled = false;     // 複製用スクリプトをオフにする
                 obj.AddComponent <RemoveSprite>().enabled    = false;     // 削除用スクリプトをアタッチし、オフにする
                 //obj.transform.SetParent(this.transform.parent); // 親を付ける
                 obj.transform.SetParent(mainCanvas.transform);
                 obj.transform.localScale = new Vector3(1f, 1f, 1f);
                 SetSkillIcon.moveImage   = obj;
             }
         }
     }
     // スキルのフラグがオンならば
     else
     {
         // クリックされたら
         if (Input.GetMouseButtonDown(0))
         {
             if (scrollOnMouseCheck.GetMouseFlag())
             {
                 // その画像の上にマウスの座標があるなら
                 if (col.OverlapPoint(Input.mousePosition))
                 {
                     // スキルのIDを取得する
                     int skillID = transform.parent.GetComponent <OverLapPoint>().SkillCanvas.GetComponent <SkillText>().SkillID;
                     // スキルのレベルが0以下ならば
                     if (SkillControl.GetSkill(skillID).level <= 0)
                     {
                         return;
                     }
                     GameObject obj = GameObject.Instantiate(this.gameObject); // 自分を複製する
                     obj.AddComponent <MoveSprite>();                          // 移動用スクリプトをアタッチする
                     obj.GetComponent <DuplicateSprite>().enabled = false;     // 複製用スクリプトをオフにする
                     obj.AddComponent <RemoveSprite>().enabled    = false;     // 削除用スクリプトをアタッチし、オフにする
                     //obj.transform.SetParent(this.transform.parent); // 親を付ける
                     obj.transform.SetParent(mainCanvas.transform);            // 親を付ける
                     obj.GetComponent <UseSkill>().skillID = skillID;
                     obj.transform.localScale = new Vector3(1f, 1f, 1f);
                     SetSkillIcon.moveImage   = obj;
                 }
             }
         }
     }
 }
Esempio n. 15
0
    /// <summary>
    /// 金剛の構え (防御上昇系)
    /// </summary>
    public void StanceKongou()
    {
        SkillBase stance_K = SkillControl.GetSkill("金剛の構え");

        // 再生させるアニメーションを指定する
        this.SetTrigger("Stance");
        // 防御力アップ
        StartCoroutine(StrBuff(stance_K.GetDefence(), stance_K.GetEffectTime()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 16
0
        private void InitializeSkills()
        {
            if (cbClass.SelectedIndex == 0)
            {
                return;
            }

            panelPassive.Controls.Clear();
            panelBasic.Controls.Clear();
            panelCombat.Controls.Clear();
            panelSpecial.Controls.Clear();
            mSkillsCount    = new int[Enum.GetNames(typeof(ESkillType)).Length];
            mSkillsRowCount = new int[Enum.GetNames(typeof(ESkillType)).Length];
            mSkillList      = SkillListDict[((EClass)(cbClass.SelectedItem as ImageComboItem).Tag)];

            mSkillPanel = new SkillControl[mSkillList.Count];
            for (int i = 0; i < mSkillPanel.Length; i++)
            {
                mSkillPanel[i] = new SkillControl(mSkillList[i]);
                if (mSkillList[i].Mode > cbMode.SelectedIndex)
                {
                    continue;
                }

                mSkillPanel[i]             = new SkillControl(mSkillList[i]);
                mSkillPanel[i].MouseEnter += new EventHandler(sklPanel_MouseEnter);
                mSkillPanel[i].Click      += new EventHandler(sklPanel_Click);
                mSkillPanel[i].Tag         = i;

                mSkillPanel[i].btnUp.Tag      = i;
                mSkillPanel[i].btnUp.Click   += new EventHandler(btnUp_Click);
                mSkillPanel[i].btnDown.Tag    = i;
                mSkillPanel[i].btnDown.Click += new EventHandler(btnDown_Click);
                mSkillPanel[i].pbIcon.Tag     = i;

                int type = (int)mSkillList[i].Type;
                if ((mSkillsCount[type] % 2) == 0)
                {
                    mSkillPanel[i].Location = new Point(5, 5 + ((mSkillPanel[i].Height + 8) * mSkillsRowCount[type]));
                }
                else
                {
                    mSkillPanel[i].Location = new Point(mSkillPanel[i].Width + 10, 5 + ((mSkillPanel[i].Height + 8) * mSkillsRowCount[type]));
                    mSkillsRowCount[type]++;
                }


                GetPanel(mSkillList[i].Type).Controls.Add(mSkillPanel[i]);
                mSkillsCount[type]++;
            }

            UpdateButtons();
            UpdateSkillPoints();
        }
Esempio n. 17
0
    /// <summary>
    /// ランパート(防御力上昇系)
    /// </summary>
    public void Lampart()
    {
        SkillBase lampart = SkillControl.GetSkill("ランパート");

        // 再生させるアニメーションを指定する
        SetTrigger("Buffs");
        // 物理防御力アップ
        StartCoroutine(DefBuff(lampart.GetDefence(), lampart.GetEffectTime()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 18
0
        public void sklPanel_MouseEnter(object sender, EventArgs e)
        {
            if (Properties.Settings.Default.InfoOnHover == false)
            {
                return;
            }

            SkillControl pnlNew = sender as SkillControl;

            UpdateSkillInfo(int.Parse(pnlNew.Tag.ToString()), false);
        }
Esempio n. 19
0
    /// <summary>
    /// ディフェンダー(防御力上昇系)
    /// </summary>
    public void Defender()
    {
        SkillBase defender = SkillControl.GetSkill("ディフェンダー");

        // 再生させるアニメーションを指定する
        SetTrigger("Buffs");
        // 物理防御力アップ
        StartCoroutine(DefBuff(defender.GetDefence(), defender.GetEffectTime()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 20
0
    /// <summary>
    /// ウォークライ (攻撃力上昇系)
    /// </summary>
    public void Warcry()
    {
        SkillBase warcry = SkillControl.GetSkill("ウォークライ");

        // 再生させるアニメーションを指定する
        SetTrigger("Buffs");
        // 攻撃力アップ
        StartCoroutine(StrBuff(warcry.GetAttack(), warcry.GetEffectTime()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 21
0
    /// <summary>
    /// スキルID = 2, 「スピンキック」
    /// </summary>
    private void SpinKick()
    {
        // アニメーションを再生する
        SetTrigger("SpinKick");
        // ムーンサルトのスキルを持ってくる
        SkillBase spinKick = SkillControl.GetSkill(2);

        // 攻撃力を設定する
        SetAttack(playerData.attack + (int)(playerData.attack * spinKick.GetAttack()));
        // 攻撃するコライダーをオンにする
        EnablePlayerAttack();
    }
Esempio n. 22
0
        private string labelFromSkillControl(SkillControl skillControl)
        {
            string str = "";

            str += skillControl.Skill.ToString();
            str += " ";
            str += skillControl.CoolingSkillFrame.ToString();
            str += "/";
            str += skillControl.NeedCoolFrame;

            return(str);
        }
Esempio n. 23
0
    /// <summary>
    /// スキルID = 9, 「ムーンサルト」
    /// </summary>
    private void MoonSault()
    {
        // アニメーションを再生する
        SetTrigger("SummerSalt");
        // ムーンサルトのスキルを持ってくる
        SkillBase moonSault = SkillControl.GetSkill(9);

        // 攻撃力を設定する
        SetAttack(playerData.attack + (int)(playerData.attack * moonSault.GetAttack()));
        // 攻撃するコライダーをオンにする
        EnablePlayerAttack();
    }
Esempio n. 24
0
    /// <summary>
    /// スキルID = 1, 「イーグルアイ」
    /// </summary>
    private void EagleEye()
    {
        // イーグルアイのスキルを持ってくる
        SkillBase eagleEye = SkillControl.GetSkill(1);

        // エフェクトを表示する
        PhotonNetwork.Instantiate("Arrow/HawkEye", gameObject.transform.position + Vector3.up * 1f, Quaternion.identity, 0);
        // ホークアイの効果値を取得する
        float effectValue = eagleEye.attack + eagleEye.bonus * eagleEye.level;

        // 攻撃力にバフを掛ける
        StartCoroutine(StrBuff(effectValue, eagleEye.GetEffectTime()));
    }
Esempio n. 25
0
    /// <summary>
    /// センチネル(防御力上昇系)
    /// </summary>
    public void Sentinel()
    {
        SkillBase sentinel = SkillControl.GetSkill("センチネル");

        // 再生させるアニメーションを指定する
        SetTrigger("Sentinel");
        // 物理防御力アップ
        StartCoroutine(DefBuff(sentinel.GetDefence(), sentinel.GetEffectTime()));
        // 魔法防御力アップ
        StartCoroutine(MndBuff(sentinel.GetDefence(), sentinel.GetEffectTime()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 26
0
    /// <summary>
    /// ブラッドレイジ (攻撃力上昇系)
    /// </summary>
    public void BloodRage()
    {
        SkillBase bloodrage = SkillControl.GetSkill("ブラッドレイジ");

        // 再生させるアニメーションを指定する
        SetTrigger("BloodRage");
        // 攻撃力アップ
        StartCoroutine(StrBuff(bloodrage.GetAttack(), bloodrage.GetEffectTime()));
        // 防御力ダウン
        StartCoroutine(DefBuff(bloodrage.GetDefence(), bloodrage.GetEffectTime()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 27
0
    /// <summary>
    /// バーサク (攻撃力上昇系)
    /// </summary>
    public void Berserk()
    {
        SkillBase berserk = SkillControl.GetSkill("バーサク");

        // 再生させるアニメーションを指定する
        SetTrigger("Buffs");
        // 攻撃力アップ
        StartCoroutine(StrBuff(berserk.GetAttack(), berserk.GetEffectTime()));
        // 防御力ダウン
        StartCoroutine(DefBuff(berserk.GetDefence(), berserk.GetEffectTime()));
        // スキルフラグをfalseにしておく
        this.EndSkillFlag();
    }
Esempio n. 28
0
    /// <summary>
    /// ボーパルソード(攻撃系)
    /// </summary>
    public void BoparuSword()
    {
        SkillBase boparusword = SkillControl.GetSkill("ボーパルソード");

        // ダメージ計算式
        int damage = playerData.attack + (int)(playerData.attack * boparusword.GetAttack());

        // スキルごとのダメージを設定する
        SetAttack(damage);
        // 再生させるアニメーションを指定する
        anim.SetTrigger("BoparuSword");
        // アタック中に切り替える
        Attack();
    }
Esempio n. 29
0
    /// <summary>
    /// スピンスラッシュ(攻撃系) 元RotationSword
    /// </summary>
    public void SpinSlash()
    {
        SkillBase spinslash = SkillControl.GetSkill("スピンスラッシュ");

        // ダメージ計算式
        int damage = playerData.attack + (int)(playerData.attack * spinslash.GetAttack());

        // スキルごとのダメージを設定する
        SetAttack(damage);
        // 再生させるアニメーションを指定する
        anim.SetTrigger("RotationSword");
        // アタック中に切り替える
        Attack();
    }
Esempio n. 30
0
    /// <summary>
    /// ドレインソード(攻撃系)
    /// </summary>
    public void DrainSword()
    {
        SkillBase drainsword = SkillControl.GetSkill("ドレインソード");

        // ダメージ計算式
        int damage = playerData.attack + (int)(playerData.attack * drainsword.GetAttack());

        // スキルごとのダメージを設定する
        SetAttack(damage);
        // 再生させるアニメーションを指定する
        anim.SetTrigger("DrainSword");
        // アタック中に切り替える
        Attack();
    }