protected override GameObject ShootWithLaser(Laser laser) { GameObject asteroidGO = base.ShootWithLaser(laser); if (asteroidGO != null) { asteroidGO.GetComponent <Asteroid>().ImpactDurability(-100 * Time.deltaTime); resources += 100 * Time.deltaTime; OnResourceChangedEvent?.Invoke((int)resources, 0); } return(asteroidGO); }
public virtual void ImpactDurability(float value) { if (IsDeath || Invincible) { return; } Durability = Mathf.Clamp(Durability + value, 0, defaultDurability); OnDurabilityChangedEvent?.Invoke(Durability, defaultDurability); if (Durability == 0) { OnDestoryed(); } }
public virtual void ImpactEquipmentVolume(float value) { SelectedEquipmentObject.UpdateVolume(value); OnVolumeChangedEvent?.Invoke(SelectedEquipmentObject.Volume, SelectedEquipmentObject.Template.volume); }
public override bool ItemValueChanged(object tag, IItemFacade itemFacade) { handler?.Invoke(tag, itemFacade); return(true); }