Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
 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;
 }
Esempio n. 4
0
 /// <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;
 }
Esempio n. 5
0
 /// <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;
 }
Esempio n. 6
0
    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");
        }
    }
Esempio n. 7
0
    public static float GetInfluence(GameObject gameObject, DamageKind damageKind)
    {
        var material = GetMaterial(gameObject);

        return(material.GetInfluence(damageKind));
    }