Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - fiziologus

#1
Quote from: Elevator on February 02, 2017, 05:58:11 PM
Hello, Tynan.
Thank you for moving this post to the more appropriate location.

We have "psychic drone" entry and separate "male"/"female" entry. I thing the clearer message can look like:

  "psychic drone (affects male people)"

For this case the template will look like:

  "{0} (affects {1} people)".

This template needs to be translated, of course, but on the other hand, the result message will be much clearer for players.

You say that there are some reasons not to make format messages modifiable, but translation files contain a lot of such lines. Maybe one single line will not be such a big deal?
If i'm wrong, maybe there are some other ways to do it?
As about use no-gender term here instead male/female. Like black/white broadcast in Prisoners of Power (Inhabited Island) Strugatsky. Say, "steel" is male affected, "flower" is female affected, or any other variants. Anyway this more folk nickname then science term.
#2
Z-level mostly need for storage. Now storage waste lot base and map space. Creating some kind cellar or loft (quasi z-level via internal container) be very helpfull.

Sorry for revive zombi thread.
#3
Ideas / Re: Too much meat variety?
February 19, 2018, 06:19:07 PM
@Foefaller, in current state games all meat possible combine for cooking, leather for craft not.

@Morrneyo, independs meat allow (in future, now not (perhaps not), its autogenerated) define stats (rot speed, nutrition, stack size etc) for each and close game mechanic to IRL. Or define preferences (possible now), say colonist/exotic_live_thing like (or more, eat) warg meat only (or vegetarian if no warg near) and unhapy/reject if eat other meat.
And if simplify the classification enough "small animal meat", "big animal meat", "insect meat" and "human meat" (stats all meat same, different only icons), or just "animal meat", "insect meat" and "humal meat" (different mood impact).
#4
Quote from: wwWraith on February 19, 2018, 02:19:07 AM

No, some of them still have "а" in plural form: "дом - дома", "луг - луга" again, "мех - меха" (fur).

And if your list of exceptions will be hardcoded, it will require additional translator's work injected into the coding process. Also it can become longer than the list of actually used words, otherwise it will make adding new words problematic. If that list will be rendered as XML then it won't be very different from what was suggested in the OP, just more complex for the translators as they would have to additionally check every single word if it should be added in the exception list or not.
Exception list need only for used in game words, not for all words in language. You need this word in ruleString?
No compare tool, just simple tool for replace words in limited and  words list, and large language processor.
And list no need hardcode, store in file as plant text ("original<separator>replace") and load as need (as static). No need XML or other thing. For simple task need simple tools only. Mechanic same as for Strings files.
And about "complex for the translators as they would have to additionally check every single word if it should be added in the exception list or not".
Elevator say "need store all language (plural, case and gender) forms in String". After this for each new word need check used form in ruleStrings and add this form in Strings. More, if word no change in some form (очки, брюки) anyway need add this word in all used form (очки must be in as wordFile as wordPluralFile as wordOtherFormFile) because engine no know about gramatic and just select one random word from file. "Yeah, this good" say wwWraith -- "need do nothing".
I say "store exception, all other must be do engine". "No" scream wwWrath -- "Need know school gramatic; mutate word in mind and compate with used in engine rules in very great work".
Logic?

I say one more time. 'Strings' need expand, this database very lang specific now, but expand wisely. 'Strings' is just word database for lower size  RulePack and use as database. Create tool-for-translators from String like replace Male/Female with gender sign, good in paper, very bad in metal.

PS: For dev team, in paper, possible find compromise between ruleFiles size and I-do-not-want-to-think translators. Just store path in keyword e.g. Word_WordPath_Syll in Strings/Word/WordPath/Syll.txt (Replace("_", "path_separator")) (initially worst and crazy idea).
#5
@Kiame, thanks with loging, I crack this.

Some help for modders.

In only-assembly-patch mods (as my example) init class (Main in my code) must inherit from Mod class, and init class constructor must use Verse.Mod constructor and have public access.

using Verse;
using Harmony;
using System;
using System.Reflection;

namespace Prototype
{
//      [StaticConstructorOnStartup]  ** no need, constructor cannot be static here
        class Main : Mod
        {
                public Main(ModContentPack content) : base (content) // always, or engine cannot call .ctor
                {
                        var harm = HarmonyInstance.Create("rimworld.mod.nutrition");
                        harm.PatchAll(Assembly.GetExecutingAssembly());
                        Log.Warning("Patch Init Called"); // just log message for debug
                }
        }
        [HarmonyPatch(typeof(IngredientValueGetter_Nutrition))]
        [HarmonyPatch("ValuePerUnitOf")]
        class Mod_Meat
        {
                [HarmonyPostfix]
                static void ValueForMeat(ref float __result, ThingDef t, IngredientValueGetter_Nutrition __instance)
                {
                        Log.ErrorOnce("IngredientValueGetter_Nutrition.ValuePerUnitOf Patch Called", __instance.GetHashCode());
                        float meat = t.IsMeat ? 2.6f : 1;
                        __result *= meat; // possible
                }
        }
}
#6
Quote from: wwWraith on February 12, 2018, 02:32:26 PM
It's not true. At least it's rarer than all others. And we are not on the elections here. And there is need to change the word in many cases (probably it's more often required than not). Just a few simple examples:
All male genger word with empty ending (except end with ь and seven magic letter) have "ы" in plural form. (And male gender have only this two ending). This gramatic, strict gramatic and autogenerate plural possible and very easy. (little trouble may be with fugitive vowels: лев -> львы etc (in most case  enough just mark vowel in single form and delete in plural) and unchanged word (creating list of exception)).
char c = str[str.Length - 1];
                // Если последняя А берём ещё и предпоследнюю
                char c2 = (str.Length != 1 && c == "а") ? str[str.Length - 2] : '\0';
                if ( "гкхжшщч".IndexOf(c) >= 0 )
                {
                        return str + "и";
                }
                else if ( ( c == "а" && "гкхжшщч".IndexOf(c2) >= 0 ) || "йья".IndexOf(c) >= 0 )
                {
                        return str.Substring(0, str.Length - 1) + "и";
                }
                else if ( c == "о" )
                {
                        return str.Substring(0, str.Length - 1) + "а";
                }
                else if ( c == "е" || c == "ё" )
                {
                        return str.Substring(0, str.Length - 1) + "я";
                }
                else if ( c == "а" )
                {
                        return str.Substring(0, str.Length - 1) + "ы";
                }
                else return str + "ы";

QuoteReally? Maybe you'll say that backstories file is a piece of "external code" too )? Reading of the file is also required on start and this data is also placed to memory.
Really. And this files reading and parse on start and store content in memory.
Quoteame->[badassanimal] [geography]
name->[badassconcept] [geography]
name->[badassanimal]'s [geography]
name->[badassperson]'s [geography]
First two is noun-as-adjective, my first reply. This need fix via Strings[+LanguageWorker]. For two other need only LanguageWorker: case gramatic (падежи) strict (in most case).
#7
using Verse;
using Harmony;
using System.Reflection;

namespace Prototype
{
        [StaticConstructorOnStartup]
        class Main
        {
                static Main()
                {
                        var harm = HarmonyInstance.Create("rimworld.mod.nutrition");
                        harm.PatchAll(Assembly.GetExecutingAssembly());
                }
        }
        [HarmonyPatch(typeof(IngredientValueGetter_Nutrition))]
        [HarmonyPatch("ValuePerUnitOf")]
        class Mod
        {
                [HarmonyPostfix]
                static void ValueForMeat(ref float __result, ThingDef t, IngredientValueGetter_Nutrition __instanse)
                {
                        float meat = t.IsMeat ? 2.6f : 1;
                        __result *= meat;
                }
        }
}

Where may be issue, this code just not work.
#8
Bugs / [half] Battle Log and BodyPart
February 11, 2018, 09:51:16 AM
If body part have tool and damage/destroy battle log say "damage/destroy <tool> and <body part>" not "damage/destroy <body part>".

This half bug and no critical (BattleLog some bugged anyway).
#9
Ideas / Re: B18 Feedback: Melee vs Ranged Balance.
February 11, 2018, 07:46:51 AM
Big trouble with melee vs range combat is draw close stage. IRL melee fighter no charge direct to target, but quick move on arc constantly avoid line if fire. In RimWord fighter just move to target even no charge and get dose of bullets. Equal range and melee possible via "evasion move": while melee fighter draw close to shooter walk speed increase (charge) and 2x dodge take to evasion direct decrease shooter's aim.
#10
Ideas / Weapon, Clothing and skill.
February 11, 2018, 07:12:45 AM

    • Weapons.

      • Spear. Wooden and wooden with stone point (neolotic) spear on start (craft spot). Learn base metallurgy for just point wood stick is insane.
      • Sling. Simple range weapon from leather (no fur). Need both melee and range skills (melee for cooldawn, ranged combat for aim). Hit hard and little stun.
      • Throwning spear and pila later. Range weapon suitable for melee combat (as weak spear). Need both combat skills as for sling (but melee affect to damage (low) and range (high)).
      • Twin weapon set. Pistol+knife(or sword), two sword/pistol/knife etc, all use as one weapon. Enhance melee verb (knife more better then bare fist)  for range+melee, and enhance fighting for other (less cooldawn (say -50%), but less to-hit/aim (also -50%))
      • Two-hand melee weapon. Bigest one-hand version (1.5x material), and take more damage (about 1.3-1.5x), but slow (about 1.2-1.4x cooldown).
      • Flail. Both neolithic (leather+[wood+]stone) and medieaval (metal[+wood]) weapon with to-hit bonus and high damage, but may little hit (revers depend on melee skill) owner if miss targer  ;).
      • bayonet
      • Humanlike use kick (with some stun damage) in melee combat instead head. "Jon hit with head Jim's leg" very funny log message. All prosthesis no change kick stat except peg leg (full remove kick).
    • Clothing

      • Two material, main and second. With "complex cloth" research. Apparel get best stats from both material and label from main (or complex label mainMat thing with secMat).
      • Boots. Cold protect, enhance walking.
      • Pants to base clothing. This no more complex than parka, and wear Rome Empire warriors (and even early in cold places).
    [/li]
  • Skills

    • Combat skills affect (little, say 1%/unit) to cooldown.
    • Medical little affect to melee damage.
    • Art (with craft and randome ;D ) affect to things quality.
    • Ambidexterity stat (hiden fourth trait). Lower two weapon set penalty, and enhance manual work speed.
#11
Quote from: Elevator on February 08, 2018, 06:58:58 PM
What exactly are you talking about? Adding new rawRules to defs cannot lead to any decrease in stability or performance because it doesn't require any code modification.
Defs also code. External code. More, all this external code load in memory (and save in memory) on start. All this external code parse on start. This both strong (quick access) and weak (memory usage) side Unity engine.
Plus, patching keyword and path (thanks for discover) is bug (feature), and may be remove any time.

At end, performance only first step. How much empty files you need in each RulePack or how much need  total (if store empty-file-rule in Global)? How much need for other language, more than you or less?

"Give me lot rawRules" worst way. Extend rawRules need exactly (noun as adjective; male live thing with female name, because in no-english lang abstract word have no only neuter gender etc), but extend wisely. Many translation trouble possible avoid via word trick (some time word trick just needed, say pirate groupe's name "Donkeys" very fearfull in some language) or direct via LanguageWorker.PostProcesed (good, but some hard way).
Strings files is word database for reduce RulePack size, no need use its as tool for simple task. (Anyway, create perfect readable autogenerated string very hard task)

wwWraith, "ы" more common (rule affect to many word) and easy (no need change word in most case) way.
#12
Bugs / Re: [b18] Wargs get food poisoning from raw meat
February 11, 2018, 04:04:38 AM
No only warg, all animal as wild, as domestic. Perhaps taming deprive animal ability safe eat raw meat.
#13
Ideas / Re: Clothing Social Value
February 08, 2018, 04:27:56 AM
Quote from: Arcus on February 08, 2018, 12:27:59 AM
Since it was mentioned that leathers are being "reworked so they're actually meaningfully different", I was thinking whether clothes could have a stat that affects social interaction/people's opinion, tied to materials used and tailoring quality? We already have cowboy hats giving a slight buff but nothing else does.
Quote
This very, very social depend. Same gear make difference social value for difference social groups: awfull for one be pleasure for other and indifferent for third.

QuoteThen add modifiers/offsets for materials used. i.e., wearing human leather clothing gives a big opinion hit with non-cannibals because you look like a fucking psycho, but that can be mitigated if your tailor is really good.
All tanned leather very same. Recognize human this leather or not may only very good know human leather men, for common people this same as any other leather.

QuoteMeanwhile exotic thrumbofur gives an opinion boost for wearing it because it's rare and makes for really gorgeous clothes or something, and reptile leathers might suck for practical, hard wearing clothes but have the upside of looking fancy.
Thrumbofur valuable for traders (very rare) not for all people. Say for some tribe thrumbo like deity and tribemember see traveler wear thrumbofur gear.... well, try hit cow in India.  ;)  Also for other no fabric apparel.
#14
levator rigth, but only partialy. And fixing via "give me lot rawRules" very bad idea: grow code, less stability and performance, and more memory usage (each empty file must be load).
"A lot of languages have different forms of the same word", but this form have (in most case) strict grammatic rules and may be adapted to curent lang string.
"These rules generate faction names in plural form just by adding "s" to the end. This trick is only actual for English". This trick not work fully even english, as adding "ы" for plural in russian. Anyway this (and plural/gender for adjective) easy fixing via Language_Worker (strict grammatic) or (much less easy) via word tricking.
Truly trick is string like
name->[animal] [tribalword]
Animal here is an adjective. Use noun as adjective very lang specific, and no fixing because no strict mutated rules. Need fully separate (clear via rawRules or hiden via keyword_path is Word/Path/Keyword.txt) noun to noun, adjective to adjective and verbe to verbe, even if same word in english.