void Damage(AttackArea.AttackInfo attackInfo) { transform.root.SendMessage("Damage", attackInfo); if (transform.root.tag == "Boss") { transform.root.gameObject.SendMessage("Damage", attackInfo); } }
void Damage(AttackArea.AttackInfo attackInfo) { var effect = Instantiate(this.hitEffect, this.transform.position, Quaternion.identity); effect.transform.localPosition = this.transform.position + new Vector3(0.0f, 0.5f, 0.0f); Destroy(effect, 0.3f); Debug.Log($"Enemy damage: {nameof(this.DamageMine)}"); this.enemyMonobitView.RPC(nameof(this.DamageMine), MonobitTargets.All, attackInfo.attackPower); }
void Damage(AttackArea.AttackInfo attackInfo) { status.HP -= attackInfo.attackPower; if (status.HP <= 0) { status.HP = 0; // 체력이 0이므로 사망 스테이트로 전환한다. ChangeState(State.Died); } }
void Damage(AttackArea.AttackInfo attackInfo) { status.HP -= attackInfo.attackPower; if (status.HP <= 0) { status.HP = 0; // 体力0なので死亡 ChangeState(State.Died); } }
// 攻撃情報を取得する. AttackArea.AttackInfo GetAttackInfo() { AttackArea.AttackInfo attackInfo = new AttackArea.AttackInfo(); // 攻撃力の計算. attackInfo.attackerName = attackerName; attackInfo.attackPower = (int)(this.CharaPower * this.MagicPower); attackInfo.element = this.Element; attackInfo.elementPower = this.elementPower; return(attackInfo); }
// 攻撃情報を取得する. AttackArea.AttackInfo GetAttackInfo() { AttackArea.AttackInfo attackInfo = new AttackArea.AttackInfo(); // 攻撃力の計算. attackInfo.attackPower = 10; // 攻撃強化中 attackInfo.attacker = transform.root; return(attackInfo); }
/* * public class AttackInfo * { * public int attackPower; // この攻撃の攻撃力. * public Transform attacker; // 攻撃者. * }*/ // 攻撃情報を取得する. AttackArea.AttackInfo GetAttackInfo() { AttackArea.AttackInfo attackInfo = new AttackArea.AttackInfo(); attackInfo.attackerName = "Enemy"; // 攻撃力の計算. attackInfo.attackPower = (int)(status.Power * status.mag); attackInfo.element = status.attackElement; attackInfo.elementPower = 1.5f; attackInfo.attacker = transform.root; return(attackInfo); }
void Damage(AttackArea.AttackInfo attackInfo) { GameObject effect = Instantiate(hitEffect, transform.position, Quaternion.identity) as GameObject; effect.transform.localPosition = transform.position + new Vector3(0.0f, 0.5f, 0.0f); Destroy(effect, 0.3f); status.HP -= attackInfo.attackPower; if (status.HP <= 0) { status.HP = 0; // 체력이 0이므로 사망 스테이트로 전환한다. ChangeState(State.Died); } }
// Calculate a Damage. void Damage(AttackArea.AttackInfo attackInfo) { this.status.HP -= attackInfo.attackPower; if (this.status.HP <= 0) { this.status.HP = 0; } this.gameRuleCtrl.UpdatePlayerHP(this.status.HP); if (this.status.HP == 0) { this.ChangePlayerState(PlayerState.PlayerDied); } }
void Damage(AttackArea.AttackInfo attackInfo) { if (status.dodgeActive == true) { } else if (state == State.Gurding) { GameObject effect = Instantiate(hitEffect, transform.position, Quaternion.identity) as GameObject; effect.transform.localPosition = transform.position + new Vector3(0.0f, 0.5f, 0.0f); Destroy(effect, 0.3f); double unko = attackInfo.attackPower * 0.1; status.HP -= (int)unko; status.stamina -= attackInfo.attackPower / 10; if (status.stamina <= 0) { status.guardBreak = true; status.stamina = 0; status.guardBreakTime = 100; // 体力0なので死亡ステートへ. // ChangeState(State.Died); } if (status.HP <= 0) { status.HP = 0; // 体力0なので死亡ステートへ. ChangeState(State.Died); } } else if (status.guard == false) { GameObject effect = Instantiate(hitEffect, transform.position, Quaternion.identity) as GameObject; effect.transform.localPosition = transform.position + new Vector3(0.0f, 0.5f, 0.0f); Destroy(effect, 0.3f); status.HP -= attackInfo.attackPower; if (status.HP <= 0) { status.HP = 0; // 体力0なので死亡ステートへ. ChangeState(State.Died); } } }
// 当たった. void OnTriggerEnter(Collider other) { AttackArea.AttackInfo info = GetAttackInfo(); //使用者に魔法が当たったら無視する。 if (other.gameObject.GetComponent <HitArea>().receiverName == info.attackerName) { return; } // 攻撃が当たった相手のDamageメッセージをおくる. other.SendMessage("Damage", GetAttackInfo()); //永続でないならあたり判定を削除する if (IsEternal != true) { Destroy(this.gameObject.GetComponent <Rigidbody>()); } }
void Damage(AttackArea.AttackInfo attackInfo) { // 이펙트 발생. GameObject effect = Instantiate(hitEffect, transform.position, Quaternion.identity) as GameObject; effect.transform.localPosition = transform.position + new Vector3(0.0f, 0.5f, 0.0f); Destroy(effect, 0.3f); if (networkView.isMine) { DamageMine(attackInfo.attackPower); } else { networkView.RPC("DamageMine", networkView.owner, attackInfo.attackPower); } }
void Damage(AttackArea.AttackInfo attackInfo) { if (this.hitEffect != null) { // Effect. GameObject effect = Instantiate(this.hitEffect, transform.position, Quaternion.identity) as GameObject; effect.transform.localPosition = transform.position + new Vector3(0.0f, 0.5f, 0.0f); Destroy(effect, 0.3f); } // Calculate HP. status.HP -= attackInfo.attackPower; if (status.HP <= 0) { status.HP = 0; ChangeState(EnemyState.Died); } }
void Damage(AttackArea.AttackInfo attackInfo) { //ヒットエフェクト発生 MakeParticle(hitEffect, 0.3f, new Vector3(0.0f, 0.5f, 0.0f)); damageSeAudio.Play(); int damage = attackInfo.attackPower; if (status.weakElement == attackInfo.element)//弱点属性なら { damage = (int)(attackInfo.attackPower * attackInfo.elementPower); } //ディフェンスの効果 damage = (int)(damage - status.Defence * 0.07); //シールド if (status.DefOneBoost) { damage = (int)(damage * (1 - status.DefOneBoostMig)); status.StopDefOneBoost(); } //バリア if (status.eternalDef) { damage = (int)(damage * (1 - status.eternalDefMig)); } //ダメージが一定以上ならのけぞり if (damage >= ReactLine && !status.lastBeat) { ChangeState(State.Reacting); StartCoroutine(camera.ShakeView());//画面の揺れ } status.HP -= damage; // text.text = "プレイヤー:" + damage + "ダメージ"; //TODO if (status.HP <= 0) { status.HP = 0; status.stopAllStatusUp(); ChangeState(State.Died);//体力0死亡 } }
public void Damage(AttackArea.AttackInfo attackInfo) { if (gameRuleCtrl.gameClear) { return; } SetAttackTarget(attackInfo.attacker); GameObject effect = Instantiate(hitEffect, transform.position, Quaternion.identity) as GameObject; effect.transform.localPosition = transform.position + new Vector3(0.0f, 0.5f, 0.0f); Destroy(effect, 0.3f); status.HP -= attackInfo.attackPower; if (status.HP <= 0) { status.HP = 0; // 体力0なので死亡ステートへ. ChangeState(State.Died); } }
void Damage(AttackArea.AttackInfo attackInfo) { //パーティクル生成 GameObject effect; switch (attackInfo.element) { case 0: effect = (GameObject)Instantiate(hitEffect[0], transform.position, Quaternion.identity); break; case 1: effect = (GameObject)Instantiate(hitEffect[1], transform.position, Quaternion.identity); break; case 2: effect = (GameObject)Instantiate(hitEffect[2], transform.position, Quaternion.identity); break; case 3: effect = (GameObject)Instantiate(hitEffect[3], transform.position, Quaternion.identity); break; case 4: effect = (GameObject)Instantiate(hitEffect[4], transform.position, Quaternion.identity); break; case 5: effect = (GameObject)Instantiate(hitEffect[5], transform.position, Quaternion.identity); break; case 6: effect = (GameObject)Instantiate(hitEffect[6], transform.position, Quaternion.identity); break; default: effect = (GameObject)Instantiate(hitEffect[0], transform.position, Quaternion.identity); break; } effect.transform.localPosition = transform.position + new Vector3(0.0f, 0.5f, 0.3f); Destroy(effect, 0.3f); damageSeAudio.Play(); int damage = attackInfo.attackPower; if (status.weakElement == attackInfo.element)//弱点属性なら { damage = (int)(attackInfo.attackPower * attackInfo.elementPower); } //ディフェンスの効果 damage = (int)(damage - status.Defence * 0.1); status.HP -= (int)(damage * Random.Range(0.9f, 1.1f)); if (status.HP <= 0) { status.HP = 0; // 体力0なので死亡 ChangeState(State.Died); } //text.text = "敵:" + damage + "ダメージ"; HPText.text = status.HP.ToString(); MaxHPText.text = "/" + status.MaxHP.ToString(); }
void Damage(AttackArea.AttackInfo attackInfo) { transform.root.SendMessage("Damage", attackInfo); }
//攻撃されたらメッセージが送られてくるのでそれを本体のスクリプトに伝える void Damage(AttackArea.AttackInfo attackInfo) { rootBody.SendMessage("Damage", attackInfo); }