Пример #1
0
 //Default Methods
 virtual public void Damaged(cl_Weapon Weapon)
 {
     if (hp > 0)
     {
         hp--;
     }
 }
Пример #2
0
 public override void Damaged(cl_Weapon Weapon, cl_SectorObject attacker)
 {
     base.Damaged(Weapon, attacker);
     if (hp <= 0)
     {
         OnDestroy(attacker);
     }
 }
Пример #3
0
    //Default methods
    virtual public void Damaged(cl_Weapon Weapon, cl_SectorObject attacker)
    {
        int damageTaken = Weapon.GetVar <int>(cl_Weapon.DAMAGE);

        if (Weapon.tags.Contains(cl_Weapon.PIERCING) == false)
        {
            if (Weapon.tags.Contains(cl_Weapon.EXPLOSIVE))
            {
                damageTaken *= 2;
                shield      -= damageTaken;
                damageTaken  = -(shield / 2);
            }
            else
            {
                shield     -= damageTaken;
                damageTaken = -shield;
            }
        }
        if (damageTaken > 0)
        {
            if (Weapon.tags.Contains(cl_Weapon.KINETIC))
            {
                hp -= damageTaken * 2;
            }
            else
            {
                hp -= damageTaken;
            }

            if (Weapon.tags.Contains(cl_Weapon.ENERGY) == false)
            {
                damageTaken /= 2;
            }
            for (int i = 0; i < damageTaken; i++)
            {
                int target = Random.Range(0, 4 + systems.Count);
                if (target - 4 >= 0)
                {
                    systems[target].Damaged(Weapon);
                }
            }
        }
    }