Beispiel #1
0
        public bool HandleEvent(BrewingFinishedEvent e)
        {
            var liquidVolume = ParentObject.GetPart <LiquidVolume>();

            string beverage = null;

            if (LiquidVolume.isValidLiquid(e.Recipe.Beverage))
            {
                beverage = e.Recipe.Beverage;
            }
            else if (PopulationManager.HasPopulation(e.Recipe.Beverage))
            {
                beverage =
                    PopulationManager.RollOneFrom(e.Recipe.Beverage).Blueprint;
            }

            if (beverage != null && LiquidVolume.isValidLiquid(beverage))
            {
                liquidVolume.MixWith(new LiquidVolume(beverage, 1));

                var message = e.Recipe.Mistake ? MESSAGE_BREWING_FAILURE
                             : e.Recipe.Tricky ? MESSAGE_BREWING_SUCCESS_TRICKY
                                               : MESSAGE_BREWING_SUCCESS;

                AddPlayerMessage(VariableReplace(
                                     message.Replace(
                                         "=liquid=",
                                         liquidVolume.GetLiquidName()
                                         ),

                                     Subject: ParentObject
                                     ));

                if (e.Recipe.Mistake)
                {
                    GetAnnoyed(e.Activator);
                }
            }
            else
            {
                AddPlayerMessage(VariableReplace(
                                     MESSAGE_BREWING_HUH,
                                     Subject: ParentObject
                                     ));
            }

            return(true);
        }