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); } }
private void Start() { var currentLanguage = _uiSettingService.CurrentLanguage; var noBulletsDisplayText = StaticPhrases.GetValue("no-bullets", currentLanguage); MessageText.text = noBulletsDisplayText; InvokeRepeating(nameof(UpdateSprite), 0, 1); }
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}"); }
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})"); }
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); }
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; }
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; }
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}"); }
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}"); }
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); }
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; }
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); } }
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}"); }
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); }
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(); } }
public void Start() { Text.text = StaticPhrases.GetValue(TextKey, CurrentLanguage); }