public new void SetAvailable(bool available) { if (!available) { PotentionallyAvailable = false; base.SetAvailable(false); return; } if (Dependence == DependenceType.OtherEquipmentDepends) { PotentionallyAvailable = true; base.SetAvailable(true); if (OtherEquipment.IsPotentionallyAvailable()) { OtherEquipment.SetAvailable(true); } return; } if (Dependence == DependenceType.OtherEquipmentNeededFirst) { PotentionallyAvailable = true; if (OtherEquipment.IsAvailable()) { base.SetAvailable(true); } return; } }
void OnMouseEnter() { //TODO check refs ! if (LinkedEquipment == null) { return; } EquipmentAtMercy atMercy = LinkedEquipment as EquipmentAtMercy; if (!LinkedEquipment.IsAvailable() && !(atMercy && atMercy.IsPotentionallyAvailable())) { base.OnMouseEnter(); } }