public static void InflictDamage( GameObject victim, Object inflictor, float damage, DamageKind kind, List <SurfaceContact> contacts = null ) { if (damage == 0) { return; } float influence = DamageReceiver.GetInfluence(victim, kind); if (influence != 0) { damage *= influence; var damageData = new DamageMessageData( inflictor, damage, DamageKind.Collision, contacts ); victim.SendMessage(DamageMessageData.MessageName, damageData, SendMessageOptions.DontRequireReceiver); } }
public DamageMessageData(Object inflictor, float damage, DamageKind kind, List <SurfaceContact> contacts) { this.Inflictor = inflictor; this.Damage = damage; this.Kind = kind; this.Contacts = contacts; }
public void SpawnDamage(int damage, DamageKind k, Vector3 pos) { GameObject go = GameObject.Instantiate(m_dnFab, pos, m_dnFab.transform.rotation) as GameObject; DamageNumber dn = go.GetComponent<DamageNumber>(); dn.kind = k; dn.damage = damage; }
/// <summary> /// コンストラクタ. /// </summary> public Damage(Damage src) { kind = src.kind; attribute = new List <DamageAttribute>(); foreach (DamageAttribute attr in src.attribute) { attribute.Add(attr); } pureDamage = src.pureDamage; damageEffectId = src.damageEffectId; DamageRate = src.DamageRate; Owner = src.Owner; EtcEffect = src.etcEffect; }
/// <summary> /// コンストラクタ. /// </summary> public Damage( DamageKind inKind, List <DamageAttribute> inAttribute, int inPureDamage, DamageEtcEffect inEtcEffect, string inDamageEffectId, float inDamageRate, GameObject inOwner ) { kind = inKind; attribute = new List <DamageAttribute>(); foreach (DamageAttribute attr in inAttribute) { attribute.Add(attr); } pureDamage = inPureDamage; damageEffectId = inDamageEffectId; DamageRate = inDamageRate; Owner = inOwner; etcEffect = inEtcEffect; }
public float GetInfluence(DamageKind damageKind) { switch (damageKind) { case DamageKind.Shockwave: return(Shockwave); case DamageKind.Collision: return(Collision); case DamageKind.Bullet: return(Bullet); case DamageKind.Electricity: return(Electricity); case DamageKind.Fire: return(Fire); case DamageKind.Cold: return(Cold); case DamageKind.Acid: return(Acid); case DamageKind.Love: return(Love); default: throw new System.ArgumentOutOfRangeException("damageKind"); } }
public static float GetInfluence(GameObject gameObject, DamageKind damageKind) { var material = GetMaterial(gameObject); return(material.GetInfluence(damageKind)); }