Beispiel #1
0
        private void DrawMonsterInfo(IActorViewModel actorViewModel, SpriteBatch spriteBatch, int viewPortWidth,
                                     int viewPortHeight)
        {
            if (actorViewModel.Actor.Person is not MonsterPerson monsterPerson)
            {
                return;
            }

            var position = new Vector2(viewPortWidth - 100, viewPortHeight - 100);

            spriteBatch.DrawString(_uiContentStorage.GetAuxTextFont(), MonsterHelper.GetPerkHintText(monsterPerson),
                                   position, Color.White);
            var isNumbersShow = false;

#if SHOW_NUMS
            isNumbersShow = true;
#endif

            if (isNumbersShow)
            {
                var stats = monsterPerson.GetModule <ISurvivalModule>().Stats;
                var monsterCombatActModule = monsterPerson.GetModule <ICombatActModule>();
                var defaultAct             = monsterCombatActModule.GetCurrentCombatActs().First();
                spriteBatch.DrawString(_uiContentStorage.GetAuxTextFont(), GetRollAsString(defaultAct.Efficient),
                                       position + new Vector2(0, 16), Color.White);
                for (var statIndex = 0; statIndex < stats.Length; statIndex++)
                {
                    var stat         = stats[statIndex];
                    var offsetY      = statIndex * 16;
                    var statPosition = new Vector2(0, 32 + offsetY);
                    var statText     = $"{stat.Type} - {stat.Value} ({stat.ValueShare:0.##})";
                    spriteBatch.DrawString(_uiContentStorage.GetAuxTextFont(), statText, position + statPosition,
                                           Color.White);
                }
            }
        }