public static void PerformCollision(FightEntity entity, Entity other) { if (entity == null || other == null) { return; } Bullet bullet = other as Bullet; if (bullet != null) { ImpactData entityImpactData = entity.GetImpactData(); ImpactData bulletImpactData = bullet.GetImpactData(); if (GetRelation(entityImpactData.Camp, bulletImpactData.Camp) == RelationType.Friendly) { return; } entity.ApplyDamage(bulletImpactData.Attack); if (bullet.SubEffectTimes()) { GameEntry.Entity.HideEntity(bullet.Id); } return; } }
/// <summary> /// 对目标添加护甲 /// </summary> /// <param name="instigator"></param> /// <param name="target"></param> public override void Resolve(TargetableObject instigator, TargetableObject target) { ImpactData targetImpactData = target.GetImpactData(); TargetableObjectData.Shield shield = GainShield(Value); target.GainShield(instigator, shield); }
private void RegisterHit(ImpactData impactData) { if (_sendEnemyStruckEvent) { GameEventDispatcher.DispatchEnemyStruck(); } EmitSignal(nameof(DamageReceived), impactData); }
void Impact(ImpactData id) { if (byName.Length > 0) { PS = GameObject.Find(byName).GetComponent <ParticleSystem>(); } PS.transform.position = id.rayhit.point + id.rayhit.normal * 0.1f; PS.transform.rotation = Quaternion.LookRotation(id.rayhit.normal); PS.Emit(count); }
private void OnDamageReceived(ImpactData impactData) { if (_velocityComponent != null) { var dir = impactData.Direction; if (dir == Vector2.Zero) { dir = (_damageReceiverComponent.GlobalPosition - impactData.SourcePosition).Normalized(); } _velocityComponent.ApplyKnockback(dir, impactData.Force); } }
void Impact(ImpactData id) { hitpoints -= id.projectile.damage; AudioSource.PlayClipAtPoint(src.clip, this.transform.position); if (hitpoints <= 0) { GameObject go = Instantiate(camStrap); Rigidbody rig = go.GetComponent <Rigidbody>(); rig.AddTorque(Random.rotation.eulerAngles * 5, ForceMode.Impulse); go.transform.position = cam.transform.position; go.transform.rotation = Random.rotation; cam.transform.parent = go.transform; Destroy(this.gameObject); } }
private void OnDamageReceived(ImpactData impactData) { if (_hitEffect != null) { var effect = _hitEffect.Instance() as Node2D; Zone.Current.EffectsLayer.AddChild(effect); effect.Rotation = impactData.Direction.Angle(); Vector2?spawnPos = impactData.ImpactPosition ?? _damageReceiverComponent?.GlobalPosition; if (spawnPos != null) { effect.GlobalPosition = (Vector2)spawnPos; } } PlayHitShadeTween(); }
public static bool PlayerResources_OnImpact(PlayerResources __instance, ImpactData impact) { if (PlayerState.IsInsideShip()) { return(false); } var speed = Mathf.Clamp01((impact.speed - __instance.GetMinImpactSpeed()) / (__instance.GetMaxImpactSpeed() - __instance.GetMinImpactSpeed())); var tookDamage = __instance.ApplyInstantDamage(100f * speed, InstantDamageType.Impact); if (tookDamage && __instance._currentHealth <= 0f && !PlayerState.IsDead()) { Locator.GetDeathManager().SetImpactDeathSpeed(impact.speed); Locator.GetDeathManager().KillPlayer(DeathType.Impact); } return(false); }
public static bool OnImpact(AnglerfishController __instance, ImpactData impact) { var qsbAngler = __instance.GetWorldObject <QSBAngler>(); var attachedOWRigidbody = impact.otherCollider.GetAttachedOWRigidbody(); if ((attachedOWRigidbody.CompareTag("Player") || attachedOWRigidbody.CompareTag("Ship")) && __instance._currentState != AnglerfishController.AnglerState.Consuming && __instance._currentState != AnglerfishController.AnglerState.Stunned) { qsbAngler.TargetTransform = attachedOWRigidbody.transform; __instance.ChangeState(AnglerfishController.AnglerState.Chasing); qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler)); return(false); } return(false); }
private void ApplyDamage(GameEntity entity) { if (IgnoreCreator && entity == Creator) { return; } if (NextImpact && NextImpact.GetComponent <SkillImpact>()) { var impact = Utility.Instantiate(NextImpact, Creator.gameObject.scene).GetComponent <SkillImpact>(); impact.Creator = Creator; impact.Effects = Effects; impact.Activate(transform.position, Direction, TargetEntity); } else { var data = new ImpactData() { Position = transform.position, Creator = Creator, ImpactType = ImpactType, Direction = this.Direction }; new SkillImpactMessage(this, Effects.Select(effect => effect.Effect.Create(effect, data, this.Creator)).ToArray()).Dispatch(entity); } }
public override void ReadData(ESPReader reader, long dataEnd) { while (reader.BaseStream.Position < dataEnd) { string subTag = reader.PeekTag(); switch (subTag) { case "EDID": if (EditorID == null) { EditorID = new SimpleSubrecord <String>(); } EditorID.ReadBinary(reader); break; case "MODL": if (Model == null) { Model = new Model(); } Model.ReadBinary(reader); break; case "DATA": if (Data == null) { Data = new ImpactData(); } Data.ReadBinary(reader); break; case "DODT": if (DecalData == null) { DecalData = new DecalData(); } DecalData.ReadBinary(reader); break; case "DNAM": if (TextureSet == null) { TextureSet = new RecordReference(); } TextureSet.ReadBinary(reader); break; case "SNAM": if (Sound1 == null) { Sound1 = new RecordReference(); } Sound1.ReadBinary(reader); break; case "NAM1": if (Sound2 == null) { Sound2 = new RecordReference(); } Sound2.ReadBinary(reader); break; default: throw new Exception(); } } }
public Impact(SimpleSubrecord <String> EditorID, Model Model, ImpactData Data, DecalData DecalData, RecordReference TextureSet, RecordReference Sound1, RecordReference Sound2) { this.EditorID = EditorID; this.Data = Data; }
public Impact() { EditorID = new SimpleSubrecord <String>("EDID"); Data = new ImpactData("DATA"); }
public override void ReadDataXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (ele.TryPathTo("EditorID", false, out subEle)) { if (EditorID == null) { EditorID = new SimpleSubrecord <String>(); } EditorID.ReadXML(subEle, master); } if (ele.TryPathTo("Model", false, out subEle)) { if (Model == null) { Model = new Model(); } Model.ReadXML(subEle, master); } if (ele.TryPathTo("Data", false, out subEle)) { if (Data == null) { Data = new ImpactData(); } Data.ReadXML(subEle, master); } if (ele.TryPathTo("DecalData", false, out subEle)) { if (DecalData == null) { DecalData = new DecalData(); } DecalData.ReadXML(subEle, master); } if (ele.TryPathTo("TextureSet", false, out subEle)) { if (TextureSet == null) { TextureSet = new RecordReference(); } TextureSet.ReadXML(subEle, master); } if (ele.TryPathTo("Sound1", false, out subEle)) { if (Sound1 == null) { Sound1 = new RecordReference(); } Sound1.ReadXML(subEle, master); } if (ele.TryPathTo("Sound2", false, out subEle)) { if (Sound2 == null) { Sound2 = new RecordReference(); } Sound2.ReadXML(subEle, master); } }
private void OnDamageReceived(ImpactData impactData) { CurrentHealth -= _damageOverride > 0f ? _damageOverride : impactData.Damage; }
void Impact(ImpactData id) { AudioSource.PlayClipAtPoint(src.clip, this.transform.position); hitPoints -= id.projectile.damage; }
private void OnDamageReceived(ImpactData impactData) { PlayAudio(); }
public void RegisterRaycastHit(Projectile projectile, RaycastResult raycastResult) { RegisterHit(ImpactData.FromRaycastProjectile(projectile, raycastResult)); }
public void RegisterAreaOfEffect(Projectile projectile, Vector2 sourcePosition) { RegisterHit(ImpactData.FromAreaOfEffectProjectile(projectile, sourcePosition)); }
void Impact(ImpactData id) { BlowUp(); }
void Impact(ImpactData id) { PS.Stop(); PS.transform.parent = null; Destroy(PS.gameObject, PS.startLifetime); // if particles live for at most 5 secs }
private void OnDamageReceived(ImpactData impactData) { Aggressive = true; }
void Impact(ImpactData id) { _rig.AddForce(id.projectile.velocity.xy(), ForceMode2D.Impulse); }