Пример #1
0
    private string GetDamageLog(Language currentLanguage, DamageActorInteractionEvent interactionEvent)
    {
        try
        {
            string        damageTemplate;
            MonsterPerson logPerson;
            if (interactionEvent.Actor == _sectorUiState.ActiveActor.Actor)
            {
                damageTemplate = StaticPhrases.GetValue("log-player-damage-template", currentLanguage);
                logPerson      = interactionEvent.TargetActor.Person as MonsterPerson;
            }
            else
            {
                damageTemplate = StaticPhrases.GetValue("log-monster-damage-template", currentLanguage);
                logPerson      = interactionEvent.Actor.Person as MonsterPerson;
            }

            var logActorDisplayName = LocalizationHelper.GetValueOrDefaultNoname(currentLanguage, logPerson.Scheme.Name);
            var damageLog           = string.Format(
                damageTemplate,
                logActorDisplayName,
                interactionEvent.DamageEfficientCalcResult.ResultEfficient);
            return(damageLog);
        }
        catch (NullReferenceException)
        {
            //TODO Some error. Fix it after release
            return(string.Empty);
        }
    }
Пример #2
0
    private void Start()
    {
        var currentLanguage      = _uiSettingService.CurrentLanguage;
        var noBulletsDisplayText = StaticPhrases.GetValue("no-bullets", currentLanguage);

        MessageText.text = noBulletsDisplayText;
        InvokeRepeating(nameof(UpdateSprite), 0, 1);
    }
Пример #3
0
    private void WriteHealAct(List <string> descriptionLines, string actName, string efficient)
    {
        var currentLanguage = _uiSettingService.CurrentLanguage;

        var healDisplayName = StaticPhrases.GetValue("efficient-heal", currentLanguage);

        descriptionLines.Add($"{actName}: {healDisplayName} {efficient}");
    }
Пример #4
0
    private void WriteDamageAct(List <string> descriptionLines, ITacticalActScheme act, string actName, string efficient)
    {
        var currentLanguage = _uiSettingService.CurrentLanguage;

        var actImpact         = act.Stats.Offence.Impact;
        var actImpactLangKey  = actImpact.ToString().ToLowerInvariant();
        var impactDisplayName = StaticPhrases.GetValue($"impact-{actImpactLangKey}", currentLanguage);

        var apRankDisplayName = StaticPhrases.GetValue("ap-rank", currentLanguage);

        descriptionLines.Add($"{actName}: {impactDisplayName} {efficient} ({act.Stats.Offence.ApRank} {apRankDisplayName})");
    }
Пример #5
0
    private string GetBonusString(PersonRuleDirection direction)
    {
        var currentLang        = _uiSettingService.CurrentLanguage;
        var bonusDisplayName   = StaticPhrases.GetValue("prop-bonus", currentLang);
        var penaltyDisplayName = StaticPhrases.GetValue("prop-penalty", currentLang);

        if (direction == PersonRuleDirection.Negative)
        {
            return(penaltyDisplayName);
        }

        return(bonusDisplayName);
    }
Пример #6
0
    private void SetMonsterStats(MonsterPerson monsterPerson, Language currentLanguage)
    {
        var hpStat = monsterPerson.GetModule <ISurvivalModule>().Stats.SingleOrDefault(x => x.Type == SurvivalStatType.Health);

        if (hpStat == null)
        {
            return;
        }

        var monsterHealthStateKey = HealthHelper.GetHealthStateKey(hpStat);
        var monsterHealthState    = StaticPhrases.GetValue($"state-hp-{monsterHealthStateKey}", currentLanguage);

        MonsterHpText.text = monsterHealthState;
    }
Пример #7
0
    public void Init(ActorViewModel actorViewModel, int damageValue)
    {
        _objectPosition = actorViewModel.gameObject.transform.position + Vector3.left * Random.Range(-0.3f, 0.3f);
        _diePosition    = _objectPosition + Vector3.up * 0.5f;
        gameObject.transform.position = _objectPosition;

        var woundKey    = GetWoundKey(damageValue);
        var woundString = StaticPhrases.GetValue(woundKey, CurrentLanguage);

        Text.text = woundString;
        // Это нужно делать, потому что нет возможности указать слой в инспекторе.
        // https://answers.unity.com/questions/595634/3d-textmesh-not-being-drawn-properly-in-a-2d-game.html
        Text.GetComponent <MeshRenderer>().sortingLayerName = INDICATOR_SORTING_LAYER;
    }
Пример #8
0
    private void WriteArmor(List <string> descriptionLines, string protectsDisplayName, string armorRankDisplayName, IPropArmorItemSubScheme armor)
    {
        var currentLanguage = _uiSettingService.CurrentLanguage;

        var armorImpact        = armor.Impact;
        var armorImpactLangKey = armorImpact.ToString().ToLowerInvariant();
        var impactDisplayName  = StaticPhrases.GetValue($"impact-{armorImpactLangKey}", currentLanguage);

        var armorAbsorbtionLevel    = armor.AbsorbtionLevel;
        var armorAbsorbtionLevelKey = armorAbsorbtionLevel.ToString().ToLowerInvariant();
        var armorAbsDisplayName     = StaticPhrases.GetValue($"rule-{armorAbsorbtionLevelKey}", currentLanguage);

        descriptionLines.Add($"{protectsDisplayName}: {impactDisplayName} ({armor.ArmorRank} {armorRankDisplayName}): {armorAbsDisplayName}");
    }
Пример #9
0
    private string GetUseRuleDescription(ConsumeCommonRule rule)
    {
        var signString      = GetDirectionString(rule.Direction);
        var currentLanguage = _uiSettingService.CurrentLanguage;

        var ruleType        = rule.Type;
        var ruleKey         = ruleType.ToString().ToLowerInvariant();
        var ruleDisplayName = StaticPhrases.GetValue($"rule-{ruleKey}", currentLanguage);

        var ruleLevel            = rule.Level;
        var ruleLevelKey         = ruleLevel.ToString().ToLowerInvariant();
        var ruleLevelDisplayName = StaticPhrases.GetValue($"rule-{ruleLevelKey}", currentLanguage);

        return($"{ruleDisplayName}: {signString}{ruleLevelDisplayName}");
    }
Пример #10
0
    private void WriteEquipmentStats(IPropScheme propScheme, Equipment equipment)
    {
        var currentLanguage  = _uiSettingService.CurrentLanguage;
        var descriptionLines = new List <string>();

        WriteActs(propScheme, descriptionLines);
        WriteArmors(propScheme, descriptionLines);
        WriteEquipmentRules(propScheme, descriptionLines);

        var durableDisplayName = StaticPhrases.GetValue($"prop-durable", currentLanguage);

        descriptionLines.Add($"{durableDisplayName}: {equipment.Durable.Value}/{equipment.Durable.Range.Max}");

        StatText.text = string.Join("\n", descriptionLines);
    }
Пример #11
0
    private void WritePropTags(IProp prop)
    {
        TagsText.text = null;

        if (prop.Scheme.Tags == null)
        {
            return;
        }

        var filteredTags    = prop.Scheme.Tags.Where(x => !string.IsNullOrWhiteSpace(x));
        var currentLanguage = _uiSettingService.CurrentLanguage;
        var tagDisplayNames = filteredTags.Select(x => StaticPhrases.GetValue($"prop-tag-{x}", currentLanguage));
        var tagsText        = string.Join(" ", tagDisplayNames);

        TagsText.text = tagsText;
    }
Пример #12
0
    private void WriteArmors(IPropScheme propScheme, List <string> descriptionLines)
    {
        var currentLanguage = _uiSettingService.CurrentLanguage;

        if (propScheme.Equip.Armors == null)
        {
            return;
        }

        var protectsDisplayName  = StaticPhrases.GetValue("armor-protects", currentLanguage);
        var armorRankDisplayName = StaticPhrases.GetValue("armor-rank", currentLanguage);

        foreach (var armor in propScheme.Equip.Armors)
        {
            WriteArmor(descriptionLines, protectsDisplayName, armorRankDisplayName, armor);
        }
    }
Пример #13
0
    private void WriteEquipmentRule(List <string> descriptionLines, PersonRule rule)
    {
        var currentLanguage = _uiSettingService.CurrentLanguage;

        var sign        = GetDirectionString(rule.Direction);
        var bonusString = GetBonusString(rule.Direction);

        var ruleType        = rule.Type;
        var ruleKey         = ruleType.ToString().ToLowerInvariant();
        var ruleDisplayName = StaticPhrases.GetValue($"rule-{ruleKey}", currentLanguage);

        var ruleLevel            = rule.Level;
        var ruleLevelKey         = ruleLevel.ToString().ToLowerInvariant();
        var ruleLevelDisplayName = StaticPhrases.GetValue($"rule-{ruleLevelKey}", currentLanguage);

        descriptionLines.Add($"{bonusString}: {ruleDisplayName}: {sign}{ruleLevelDisplayName}");
    }
Пример #14
0
    public void ShowLocalizedTooltip(string key, Vector3 pos)
    {
        var currentLanguage  = _uiSettingService.CurrentLanguage;
        var toolTipLocalText = StaticPhrases.GetValue(key, currentLanguage);

        if (tooltipText.text != toolTipLocalText)
        {
            tooltipText.text = toolTipLocalText;
        }

        var parentRect = (RectTransform)transform.parent;

        RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRect, pos, Camera.main, out var posInParent);

        transform.localPosition = posInParent;

        gameObject.SetActive(true);
    }
Пример #15
0
    private string GetStrongEffect(Language currentLanguage)
    {
        switch (Type)
        {
        case SurvivalStatType.Health:
            return(StaticPhrases.GetValue("strong-injury", currentLanguage));

        case SurvivalStatType.Satiety:
            return(StaticPhrases.GetValue("strong-hunger", currentLanguage));

        case SurvivalStatType.Hydration:
            return(StaticPhrases.GetValue("strong-thirst", currentLanguage));

        case SurvivalStatType.Intoxication:
            return(StaticPhrases.GetValue("strong-intoxication", currentLanguage));

        default:
            throw new InvalidOperationException();
        }
    }
Пример #16
0
 public void Start()
 {
     Text.text = StaticPhrases.GetValue(TextKey, CurrentLanguage);
 }