public override bool Check(IUnitConditionHave data) { var value = (int)_formula.Calculate(data.RarityValue); if (_context.BattleMode) { if (_context.ContextCondition.CurrentTarget != data.UnitId) { return(false); } var haveUnit = _battle.LiveAllies.Contains(data.UnitId); if (!haveUnit) { return(false); } return(data.Operator.Check(_units.GetUnit(data.UnitId).data.Stars, value)); } if (!_units.TryGetUnit(data.UnitId, false, out var unitData)) { return(false); } if (_context.ContextCondition != null && _context.ContextCondition.CurrentTarget > 0 && _context.ContextCondition.CurrentTarget != data.UnitId) { return(false); } return(data.Operator.Check(unitData.Stars, value)); }
public override bool Check(IConditionUnit data) { var value = (int)_formula.Calculate(data.RarityValue); if (!_units.TryGetUnit(data.UnitId, true, out var unit)) { return(data.Operator.Check(0, value)); } if (data.InExplorer && !_units.ExplorerUnits.Contains(unit.Id)) { return(false); } if (data.InActive && unit.ExplorerPosition < 0) { return(false); } return(data.Operator.Check(unit.Stars, value)); }