void OnDamage(DamageTrigger trigger, GameObject victim) { Player player = Player.instance; /*player.controller.jumpCounterCurrent = 0; * player.controller.Jump(false); * player.controller.Jump(true);*/ float criteriaY; if (gravityNormal > 0.0f) { criteriaY = minVelY * (Mathf.Abs(player.controller.gravityController.gravity) / gravityNormal); } else { criteriaY = minVelY; } Vector3 lv = player.controller.localVelocity; if (lv.y < minVelY) { lv.y = minVelY; player.controller.localVelocity = lv; } if (mSound) { mSound.Play(); } }
public override void DrawSniperLine(float x0, float y0, float x1, float y1) { WeaponScript weaponScript = null; if (myGamePlayer.weapon != null && (bool)(weaponScript = myGamePlayer.weapon.GetComponent <WeaponScript>()) && weaponScript.totalBullets == 1) { weaponScript.totalBullets = weaponScript.clipSize + 1; } base.DrawSniperLine(x0, y0, x1, y1); LayerMask mask = 0; mask = ((int)mask | 0x4000); mask = ((int)mask | 0x8000); mask = ((int)mask | 4); mask = ((int)mask | 0x400); mask = ((int)mask | 0x800); mask = ((int)mask | 0x1000); mask = ((int)mask | 0x2000); mask = ~(int)mask; RaycastHit hitInfo; if (Physics.Raycast(new Ray(myGamePlayer.mRangeStart, (myGamePlayer.mRangeEnd - myGamePlayer.mRangeStart).normalized), out hitInfo, 9999f, mask)) { DamageTrigger damageTrigger = hitInfo.collider.gameObject.GetComponent(typeof(DamageTrigger)) as DamageTrigger; if (damageTrigger != null) { damageTrigger.ApplyWallDamage(100f); } } }
private void OnTriggerEnter(Collider other) { DamageTrigger weapon = other.gameObject.GetComponent <DamageTrigger>(); Player.Instance.HealthBar.TakeDamage(weapon.Damage); _impactSound.Play(); }
void OnTriggerEnter_Hero(Collider2D other) { if (other.tag == "P_AttackRange" || other.tag == "Bolt" ) { return; } // Debug.Log("~~~~~~~~~~~~~~~~~~OnTriggerEnter_Hero : " + other.tag); Instantiate(explosion, transform.position, transform.rotation); if (other.tag == "Asteroid" || other.tag == "Bolt_enemy" ) { wt_PlayerController hero = _RootObject.GetComponent <wt_PlayerController>(); DamageTrigger damage = other.GetComponent <DamageTrigger>(); if (damage) { hero.Hurt(damage._DamageValue); } if (other.tag == "Bolt_enemy") { Destroy(other.gameObject); } } }
// Use this for initialization void Awake() { DamageTrigger dt = GetComponent <DamageTrigger>(); dt.damageCallback += OnDamage; mSound = GetComponent <SoundPlayer>(); }
public override void Attack(Vector3 position) { base.Attack(position); Transform AttackVisualisation = Object.Instantiate(attackPrefab, transform.position + transform.forward, transform.rotation); AttackVisualisation.parent = transform; StartCoroutine(DestObj(AttackVisualisation, AttackDuration)); DamageTrigger Damager = AttackVisualisation.gameObject.AddComponent <DamageTrigger>(); Damager.damageOnTouch = GetDamage; Damager.Attacker = this; Damager.Team = GetTeam; //PATERNE D'ATTACK }
void OnDamageDealt(DamageTrigger trigger, GameObject victim) { if (isAlive) { dieDelay = 0.0f; if (stats) { stats.curHP = 0.0f; } else { state = (int)State.Dying; } } }
public override void Attack(Vector3 position) { base.Attack(position); Mesh mesh = new Mesh(); mesh.name = "AttackDectection"; Vector3[] Vertice = new Vector3[4]; Vertice[0] = transform.position + transform.right * 0.5f; Vertice[1] = transform.position - transform.right * 0.5f; Vertice[2] = Vertice[0] + transform.forward * AttackRange; Vertice[3] = Vertice[1] + transform.forward * AttackRange; mesh.vertices = Vertice; int[] triangle = { 0, 1, 2, 1, 3, 2 }; mesh.triangles = triangle; mesh.RecalculateNormals(); mesh.RecalculateBounds(); GameObject ADGO = new GameObject("Attack Detection"); ADGO.AddComponent <MeshFilter>().sharedMesh = mesh; //F**K THE POLICE ! ADGO.AddComponent <MeshRenderer>().material = invinsible; MeshCollider colider = ADGO.AddComponent <MeshCollider>(); colider.convex = true; colider.isTrigger = true; Transform AttackVisualisation = ADGO.transform; AttackVisualisation.parent = transform; StartCoroutine(DestObj(AttackVisualisation, AttackDuration)); DamageTrigger Damager = AttackVisualisation.gameObject.AddComponent <DamageTrigger>(); Damager.damageOnTouch = GetDamage; Damager.Attacker = this; Damager.Team = GetTeam; }
void OnTriggerEnter_Enemy(Collider2D other) { if (other.tag == "Asteroid" || other.tag == "Bolt_enemy" ) { return; } if (explosion != null) { // Debug.Log("~~~~~~~~~~~~~~~~~~OnTriggerEnter_Enemy : " + other.tag); Instantiate(explosion, transform.position, transform.rotation); } if (other.tag == "P_AttackRange" || other.tag == "Bolt") { Enemy en = _RootObject.GetComponent <Enemy>(); if (en) { DamageTrigger damage = other.GetComponent <DamageTrigger>(); if (damage) { en.Hurt(damage._DamageValue); } if (other.tag == "Bolt") { Destroy(other.gameObject); } else if (other.tag == "P_AttackRange") { float dur = 0.5f; Vector3 pos = _RootObject.transform.position + new Vector3(0.5f, 0f, 0f); TweenPosition.Begin(_RootObject, dur, pos).method = UITweener.Method.EaseInOut; if (en._EnemyType == E_EnemyType.normal) { en._AniController.PlayHit(dur); } } } } // Destroy (_RootObject ); // gameObject); }
IEnumerator StartAttack(DamageTrigger trigger) { yield return new WaitForSeconds(trigger.StartUpTime); trigger.gameObject.SetActive(true); }
public void Update() { //Mouse Pos Vector3 TargetPos = Utility.GetMouseWorldPosition(Owner.transform.position); if (TargetPos != Vector3.zero) { Quaternion TargetRotation = Quaternion.LookRotation(TargetPos - Owner.Model.transform.position); Owner.Model.transform.rotation = Quaternion.Slerp(Owner.Model.transform.rotation, TargetRotation, 100 * Time.deltaTime); } if (!Dash) { //Base Movement bool Attacking = AttackLastUse + Owner.AttackDuration > Time.timeSinceLevelLoad; float XMovement = Input.GetAxis("Horizontal"); float YMovement = Input.GetAxis("Vertical"); float SpeedModifier = 1; if (Attacking) { SpeedModifier *= 0.2f; } //Dash if (Input.GetButtonDown("Fire2") & LastDashUse + Owner.DashCD <= Time.timeSinceLevelLoad & !Attacking) { DashGoal = TargetPos; Dash = true; //================Create Trail========================// Owner.UseDash(); Mesh mesh = new Mesh(); Transform ChildTransform = Owner.Model.transform; mesh.name = "Trail_Mesh"; Vector3[] Vertice = new Vector3[4]; Vertice[0] = ChildTransform.position + ChildTransform.right * 0.5f; Vertice[1] = ChildTransform.position - ChildTransform.right * 0.5f; Vertice[2] = Vertice[0] + ChildTransform.forward * 0.1f; Vertice[3] = Vertice[1] + ChildTransform.forward * 0.1f; mesh.vertices = Vertice; int[] triangle = { 0, 1, 2, 1, 3, 2 }; mesh.triangles = triangle; mesh.RecalculateNormals(); mesh.RecalculateBounds(); GameObject TrailGO = new GameObject("Trail"); MeshFilter TrailMesh = TrailGO.AddComponent <MeshFilter>(); TrailMesh.sharedMesh = mesh; MeshRenderer renderer = TrailGO.AddComponent <MeshRenderer>(); MeshCollider colider = TrailGO.AddComponent <MeshCollider>(); colider.convex = true; colider.isTrigger = true; renderer.material = Owner.TrailMat; Trail = TrailGO.transform; return; } Vector3 Movement = new Vector3(XMovement, 0, YMovement).normalized *Time.smoothDeltaTime *Owner.GetSpeed *SpeedModifier; Owner.transform.position += Movement; lastDirVector = Movement; if (Input.GetButtonDown("Fire1") & AttackLastUse + Owner.AttackCD < Time.timeSinceLevelLoad) { Transform AttackVisualisation = Object.Instantiate(Owner.prefab, Owner.transform.position + Owner.Model.transform.forward, Owner.Model.transform.rotation); AttackVisualisation.parent = Owner.Model.transform; Owner.DestroyObject(AttackVisualisation, Owner.AttackDuration); AttackLastUse = Time.timeSinceLevelLoad; DamageTrigger Damager = AttackVisualisation.gameObject.AddComponent <DamageTrigger>(); Damager.damageOnTouch = Owner.GetDamage; Damager.Attacker = Owner; Damager.Team = Owner.GetTeam; } } else { Vector3 DashDirection = DashGoal - Owner.transform.position; float CurSpeed = Time.smoothDeltaTime * (Owner.GetSpeed * Owner.DashMultiplierSpeed); if (DashDirection.magnitude <= CurSpeed) { CurSpeed = DashDirection.magnitude; Dash = false; LastDashUse = Time.timeSinceLevelLoad; //DestroyTrail Owner.DestroyObject(Trail, 0.5f); DamageTrigger Damager = Trail.gameObject.AddComponent <DamageTrigger>(); Damager.damageOnTouch = Mathf.CeilToInt(Owner.GetDamage * 1.5f); Damager.Attacker = Owner; Damager.Team = Owner.GetTeam; //Check All Colision With Trail } DashDirection = DashDirection.normalized; Vector3 Movement = DashDirection * CurSpeed; Owner.transform.position += Movement; Mesh mesh = Trail.GetComponent <MeshFilter>().mesh; Transform ChildTransform = Owner.Model.transform; //Update Trail Position Vector3[] Vertice = mesh.vertices; Vertice[2] = ChildTransform.position + ChildTransform.right * 0.5f; Vertice[3] = ChildTransform.position - ChildTransform.right * 0.5f; mesh.vertices = Vertice; mesh.RecalculateBounds(); Trail.GetComponent <MeshCollider>().sharedMesh = mesh; } }
internal void OnDamageTrigger(IEntity sender) { DamageTrigger?.Invoke(sender); }
void OnStarLargeHit(DamageTrigger trigger, GameObject victim) { ResetCharge(); }
public void OnReceiveDamagePertime(BattleCharacter giver, BattleCharacter receiver, DamageTrigger trigger) { onReceiveDamagePertime(giver, receiver, trigger); }
public static int CalculateAndGet(BattleCharacter giver, BattleCharacter receiver, float rate, DamageTrigger trigger) { return(0); }
void Start() { _animator = GetComponent <Animator>(); damageTrigger = transform.parent.GetComponentInChildren <DamageTrigger>(); }
void OnStarLargeHit(DamageTrigger trigger, GameObject victim) { ResetCharge(); }
//攻击 = 角色攻击力 * 卡牌百分比 * 我方buff属性 public virtual int GiveDamage(BattleCharacter bc, float damageRate, DamageTrigger trigger) { return(bc.TakeDamage(this, Attack * damageRate * (1 + attackRate))); }
public static int CalculateAndApply(BattleCharacter giver, BattleCharacter receiver, float rate, DamageTrigger trigger) { var trans = receiver.damageTrans; var damage = giver.GiveDamage(receiver, rate, trigger); var damageSource = GameObject.Instantiate(Initializer.Ins.damageSource, trans); damageSource.SetText(damage.ToString()); return(damage); }
//攻击 = 角色攻击力 * 属性修正 * 卡牌百分比 * 我方buff属性 public override int GiveDamage(BattleCharacter bc, float damageRate, DamageTrigger trigger) { var factorRate = Initializer.Ins.factors[Force - 1].Force; return(bc.TakeDamage(this, Attack * damageRate * factorRate * (1 + attackRate))); }