/// <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); }
/// <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))); }
/// <summary> /// 挑発 (攻撃力上昇系) /// </summary> public void Prov() { SkillBase prov = SkillControl.GetSkill("挑発"); // 再生させるアニメーションを指定する SetTrigger("Buffs"); this.Hate = (int)prov.GetAttack(); // スキルフラグをfalseにしておく this.EndSkillFlag(); }
/// <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()); }
/// <summary> /// ウォークライ (攻撃力上昇系) /// </summary> public void Warcry() { SkillBase warcry = SkillControl.GetSkill("ウォークライ"); // 再生させるアニメーションを指定する SetTrigger("Buffs"); // 攻撃力アップ StartCoroutine(StrBuff(warcry.GetAttack(), warcry.GetEffectTime())); // スキルフラグをfalseにしておく this.EndSkillFlag(); }
/// <summary> /// ディフェンダー(防御力上昇系) /// </summary> public void Defender() { SkillBase defender = SkillControl.GetSkill("ディフェンダー"); // 再生させるアニメーションを指定する SetTrigger("Buffs"); // 物理防御力アップ StartCoroutine(DefBuff(defender.GetDefence(), defender.GetEffectTime())); // スキルフラグをfalseにしておく this.EndSkillFlag(); }
/// <summary> /// ランパート(防御力上昇系) /// </summary> public void Lampart() { SkillBase lampart = SkillControl.GetSkill("ランパート"); // 再生させるアニメーションを指定する SetTrigger("Buffs"); // 物理防御力アップ StartCoroutine(DefBuff(lampart.GetDefence(), lampart.GetEffectTime())); // スキルフラグをfalseにしておく this.EndSkillFlag(); }
/// <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(); }
/// <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(); }
/// <summary> /// 紅蓮の構え (攻撃力上昇系) /// </summary> public void StanceGlen() { SkillBase stance_G = SkillControl.GetSkill("紅蓮の構え"); // 再生させるアニメーションを指定する this.SetTrigger("Stance"); // 攻撃力アップ StartCoroutine(StrBuff(stance_G.GetAttack(), stance_G.GetEffectTime())); // スキルフラグをfalseにしておく this.EndSkillFlag(); }
/// <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(); }
// 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; } } } } }
/// <summary> /// 金剛の構え (防御上昇系) /// </summary> public void StanceKongou() { SkillBase stance_K = SkillControl.GetSkill("金剛の構え"); // 再生させるアニメーションを指定する this.SetTrigger("Stance"); // 防御力アップ StartCoroutine(StrBuff(stance_K.GetDefence(), stance_K.GetEffectTime())); // スキルフラグをfalseにしておく this.EndSkillFlag(); }
/// <summary> /// スキルID = 9, 「ムーンサルト」 /// </summary> private void MoonSault() { // アニメーションを再生する SetTrigger("SummerSalt"); // ムーンサルトのスキルを持ってくる SkillBase moonSault = SkillControl.GetSkill(9); // 攻撃力を設定する SetAttack(playerData.attack + (int)(playerData.attack * moonSault.GetAttack())); // 攻撃するコライダーをオンにする EnablePlayerAttack(); }
/// <summary> /// スキルID = 2, 「スピンキック」 /// </summary> private void SpinKick() { // アニメーションを再生する SetTrigger("SpinKick"); // ムーンサルトのスキルを持ってくる SkillBase spinKick = SkillControl.GetSkill(2); // 攻撃力を設定する SetAttack(playerData.attack + (int)(playerData.attack * spinKick.GetAttack())); // 攻撃するコライダーをオンにする EnablePlayerAttack(); }
/// <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(); }
/// <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())); }
/// <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(); }
/// <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(); }
/// <summary> /// 双竜脚 (攻撃系) /// </summary> public void Souryu() { SkillBase souryu = SkillControl.GetSkill("双竜脚"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * souryu.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("SpiritsWithIn"); // アタック中に切り替える Attack(); }
/// <summary> /// 双掌打 (攻撃系) /// </summary> public void Sousyoda() { SkillBase sousyoda = SkillControl.GetSkill("双掌打"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * sousyoda.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("ShockWave"); // アタック中に切り替える Attack(); }
/// <summary> /// パワースラッシュ(攻撃系) /// </summary> public void PowerSlash() { SkillBase powerslash = SkillControl.GetSkill("パワースラッシュ"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * powerslash.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("PowerSlash"); // アタック中に切り替える Attack(); }
/// <summary> /// スピリッツウィズイン(攻撃系) /// </summary> public void SpiritsWithIn() { SkillBase spiritswithin = SkillControl.GetSkill("スピリッツウィズイン"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * spiritswithin.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("SpiritsWithIn"); // アタック中に切り替える Attack(); }
/// <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(); }
/// <summary> /// ソニックブーム(攻撃系) ShockWave /// </summary> public void SonicBoom() { SkillBase sonicboom = SkillControl.GetSkill("ソニックブーム"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * sonicboom.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("ShockWave"); // アタック中に切り替える Attack(); }
/// <summary> /// 気孔弾 (攻撃系) /// </summary> public void Kikou() { SkillBase kikou = SkillControl.GetSkill("気孔弾"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * kikou.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("DrainSword"); // アタック中に切り替える Attack(); }
/// <summary> /// ドレインソード(攻撃系) /// </summary> public void DrainSword() { SkillBase drainsword = SkillControl.GetSkill("ドレインソード"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * drainsword.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("DrainSword"); // アタック中に切り替える Attack(); }
/// <summary> /// 連環六合圏 (攻撃系) /// </summary> public void Renkan() { SkillBase renkan = SkillControl.GetSkill("連環六合圏"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * renkan.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("RotationSword"); // アタック中に切り替える Attack(); }
/// <summary> /// ボーパルソード(攻撃系) /// </summary> public void BoparuSword() { SkillBase boparusword = SkillControl.GetSkill("ボーパルソード"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * boparusword.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("BoparuSword"); // アタック中に切り替える Attack(); }
/// <summary> /// 夢想阿修羅拳 (攻撃系) /// </summary> public void Musou() { SkillBase musou = SkillControl.GetSkill("夢想阿修羅拳"); // ダメージ計算式 int damage = playerData.attack + (int)(playerData.attack * musou.GetAttack()); // スキルごとのダメージを設定する SetAttack(damage); // 再生させるアニメーションを指定する anim.SetTrigger("BoparuSword"); // アタック中に切り替える Attack(); }