public void PushRoleStartingInteraction(Actors.Sim sim) { try { //Message.Sender.Show("PushRoleStartingInteraction to " + (sim != null ? sim.FullName : "null")); if (sim != null && GetTargetLot().IsCommunityLot) { IBarProfessional bar = findNearestBar(sim); if (bar != null && bar.InUse) { Bartending.DrinkDescription bestDrink = Bartending.GetBestDrinkFor(sim, base.LotCurrent.GetMetaAutonomyType); String bestDrinkName = null; if (bestDrink != null) { bestDrinkName = bestDrink.GetLocalizedName(); } if (bestDrinkName != null) { PushSimToDrink(sim, bar, bestDrinkName); } } } } catch (Exception ex) { Message.Sender.ShowError(this, "Cannot order drink from bar ", false, ex); } }
private int GetTipAmount(Sim actor, Sim creator, Lot.MetaAutonomyType venueType, Bartending.DrinkDescription requestedDrink) { float num = 0f; if (venueType != Lot.MetaAutonomyType.Residential && !actor.IsSelectable) { Bartending.BarData barData; if (Bartending.TryGetBarData(venueType, out barData)) { float num2 = (float)Bartending.GetCostForDrink(requestedDrink, venueType); float num3 = num2 * barData.PriceCapMultiplier; if (num > num3) { creator.ShowTNSIfSelectable(Bartending.LocalizeString(creator.IsFemale, "BartenderExpensiveIngredients", new object[0]), StyledNotification.NotificationStyle.kSimTalking, actor.ObjectId, creator.ObjectId); } num += num2 * Bartending.GetTipMultiplierForMood(Bartending.DrinkMood.Regular); float num5 = 0f; if (actor.HasTrait(TraitNames.Frugal)) { num5 *= Bartending.kTipMultiplierTraitFrugal; } num += num2 * num5; num = Math.Min(num, num3); } Bartending skill = creator.SkillManager.GetSkill <Bartending>(SkillNames.Bartending); if (skill != null && skill.LifetimeOpportunityServedDrinksCompleted) { num *= Bartending.kLifetimeOpportunityServedTipMultiplier; } } return((int)num); }