예제 #1
0
        public virtual string GetMonsterCurse(IMonster monster, long effectUid)
        {
            Debug.Assert(monster != null);

            var curseString = "";

            var rl = RollDice(1, 100, 0);

            // Say each curse only once

            if (rl < 41 && monster.Reaction == Friendliness.Enemy && monster.HasCarriedInventory() && !gGameState.GetMonsterCurses(effectUid - 7))
            {
                var effect = gEDB[effectUid];

                Debug.Assert(effect != null);

                curseString = string.Format("{0}{0}{1} says, {2}", Environment.NewLine, monster.GetTheName(true, true, false, true, Globals.Buf01), effect.Desc);

                gGameState.SetMonsterCurses(effectUid - 7, true);
            }

            return(curseString);
        }