public bool TryRunAwayFromMovable(MovableCharacterSM movable) { float currentRunAwayProbability = GetRunAwayProbabilityForClass(movable.GetClassName()); if (Randomizer.GetPercentageBasedBoolean((int)currentRunAwayProbability)) { BeginEscape(movable); return(true); } return(false); }
public bool TryAttackMovable(MovableCharacterSM movable) { if (_attackDenyedByTraining) { return(false); } float currentAttackProbability = GetAttackProbabilityForClass(movable.GetClassName()); var sm = movable as PassengerSM; if (sm != null) { if (_isPassengerAttackDenied) { return(false); } PassengerSM passenger = sm; if (passenger.IsOnTheBench()) { currentAttackProbability *= ConfigReader.GetConfig().GetField("tram").GetField("SitAggressionIncrement").n; } } if (Randomizer.GetPercentageBasedBoolean((int)currentAttackProbability)) { if (_isConductorAttackDenied) { ConductorSM conductor = movable as ConductorSM; if (conductor != null) { return(false); } } AttackTarget = movable; AttackIfPossible(); return(true); } MakeIdle(); return(false); }
public bool TryRunAwayFromMovable(MovableCharacterSM movable) { float currentRunAwayProbability = GetRunAwayProbabilityForClass(movable.GetClassName()); if (Randomizer.GetPercentageBasedBoolean((int)currentRunAwayProbability)) { BeginEscape(movable); return true; } return false; }
public bool TryAttackMovable(MovableCharacterSM movable) { if(_attackDenyedByTraining) return false; float currentAttackProbability = GetAttackProbabilityForClass(movable.GetClassName()); var sm = movable as PassengerSM; if (sm != null) { if(_isPassengerAttackDenied) return false; PassengerSM passenger = sm; if (passenger.IsOnTheBench()) { currentAttackProbability *= ConfigReader.GetConfig().GetField("tram").GetField("SitAggressionIncrement").n; } } if (Randomizer.GetPercentageBasedBoolean((int)currentAttackProbability)) { if (_isConductorAttackDenied) { ConductorSM conductor = movable as ConductorSM; if (conductor != null) { return false; } } AttackTarget = movable; AttackIfPossible(); return true; } MakeIdle(); return false; }