#Elin Math

1 messages · Page 2 of 1

dusk nymph
#

im not seeing 100+ visitors an hour

#

isnt it more likely to be 100+ visitors per month?

#

i do see in the board screen that i get 100+ per month but not per hour

stone mica
#

well as far as I'm concerned the whole board that displays metrics about tourists is fucked

#

@dusk nymph If you can hop in voice I can share my screen and elaborate

#

and show you something

dusk nymph
#

hmm, im eating atm, do you want to just post a screenshot here maybe?

stone mica
#

sure

#

as you can see here

#

It says 14 visitors last month, and says I have 0 right now

#

but here if you look at my resident board and see how many visitors are here RIGHT NOW

#

its 460

dusk nymph
#

is it because its the first day of the month and it hasnt had the chance to update? ive never seen 0 visitors for the current month before

stone mica
#

no its 11/8 on my game

dusk nymph
#

strange, for me it says 129 visitors this month and 29 guests in the resident board

stone mica
#

as you can very clearly see there are indeed visitors

#

so I have no damn clue how the metrics are being displayed

#

Theres no way of telling how much money is being generated

#

I don't even know where the money is or goes if it even makes any

#

I've walked into this base and seen 100k+ 1m+ and 0

#

thats kinda why this base looks so barren is because I just gave up on tourism because theres no feedback on how it works

dusk nymph
#

strange, my numbers are quite consistent

stone mica
#

how often do you visit this place?

dusk nymph
#

but im not getting 100+ visitors per hour, i average 30-50 visitors with 100+ publicity

#

rarely i guess

stone mica
#

Yea I come here like every 50 years

#

I havn't looked at it in a long time

dusk nymph
#

maybe theres something about the simulation that breaks down with large time gaps

stone mica
#

as far as I'm concerned though unless theres a massive disconnect between the amount it generates and the amount it displays it generates

#

tourism is complete garbage

dusk nymph
#

yea it is

stone mica
#

its not even like 10% of what my taxes generate

#

and not even .001% of what my blueberries generate

dusk nymph
#

from what someone else said, tourism only generates income if it is lower than the normal income the guests produce

stone mica
#

I think in one month my two blueberry farms generate like a collective ... 5000 * 3 * 1000

#

so 15m

dusk nymph
#

which is why getting millions of tourism does nothing

stone mica
#

this base is making like 15k

#

so about .1% -_-

#

and the simulation isn't consistent,

#

assuming it gives you the money generated when you enter

#

if you go a long time without entering it just doesn't produce anything

#

I've gone 100 years without entering this base to come back and it generated like 20k

#

whereas in that 100 years my blueberries generated 1.5b

#

which is not true,.. my napkin math is wrong, it typically generates about 2b every 50 years

#

so like 4b in 100 years

#

20k vs 4b.... sheeeeeeeeeeesh

dusk nymph
#

but yea, are you sure its not 144 visitors per month here?

stone mica
#

I have no idea 😐

mint jackal
#

Commence the analyisis of ThrowReward function from AI_PlayMusic.cs

#
    {
        Thing thing = null;
        string text = "";
        int num = 1;
        if (punish)
        {
            text = ((EClass.rnd(5) == 0) ? "rock" : "pebble");
            if (EClass.rnd(8) == 0)
            {
                text = ((EClass.rnd(3) == 0) ? "water_dirty" : "water");
            }
            if (!c.IsPCFactionOrMinion)
            {
                thing = c.TryGetThrowable()?.Split(1);
            }
        }
        else if (EClass.rnd(100) == 0 && !EClass._zone.IsUserZone)
        {
            text = "ecopo";
            if (EClass.rnd(4) == 0)
            {
                text = "gacha_coin";
            }
            if (EClass.rnd(4) == 0)
            {
                text = "plat";
            }
            if (EClass.rnd(3) == 0)
            {
                text = "tomato";
            }
            if (EClass.rnd(3) == 0)
            {
                text = "casino_coin";
            }
        }
#
        else
        {
            num = (EClass.rnd(c.LV * 2 + 1) + 1) * (100 + toolLv * 2 + owner.Evalue(1405) * 10) / 100;
            if (c.IsUnique)
            {
                num *= 2;
            }
            if (!(EClass._zone is Zone_Music))
            {
                if (num > 25)
                {
                    num /= 2;
                }
                if (num > 50)
                {
                    num /= 2;
                }
                if (num > 100)
                {
                    num /= 2;
                }
                if (EClass._zone.IsUserZone)
                {
                    num /= 5;
                }
            }
            if (num < 1)
            {
                num = 1;
            }
            gold += num;
            text = "money";
        }
        if (!owner.IsPCParty && !punish && text != "money")
        {
            return;
        }
        if (thing == null)
        {
            thing = ThingGen.Create(text).SetNum(num);
        }
        ignoreDamage = true;
        ActThrow.Throw(c, owner.pos, thing, (!punish) ? ThrowMethod.Reward : ThrowMethod.Punish);
        ignoreDamage = false;
        if (owner == null || !thing.ExistsOnMap)
        {
            return;
        }
        if (!owner.IsPC && owner.things.IsFull())
        {
            thing.Destroy();
            return;
        }
        owner.Pick(thing);
        if (thing.id == "money" && !owner.IsPC)
        {
            int num2 = (owner.Evalue(241) * 10 + 100) / ((owner.IsPCFaction && owner.memberType == FactionMemberType.Default) ? 1 : 10);
            if (owner.GetCurrency() - num2 > 0)
            {
                owner.c_allowance += num;
                owner.ModCurrency(-num);
            }
        }
    }
mint jackal
#

So start off,
If it's a punish (aka music lv too low):
If the listener have throwable weapon and not of pc faction, use it
Else randomize the thrown item being
70% chance of pebble
17.5% chance of stone
8.4% chance of water
4.1% chance of dirty water
If my math is correct

#

Now for the actual reward

#

If player aint in PC zone aka, base, there's 1% chance the reward will become non-oren

#

ecopon 40.28375%
casino chip 33.33%
tomato 22.22%
plat 5.555%
gacha coin 1.38875%

Edit: This calculation is wrong, pls refer to Moasseman calculation below

#

now then, time for actual money formula

#

num = (EClass.rnd(c.LV * 2 + 1) + 1) * (100 + toolLv * 2 + owner.Evalue(1405) * 10) / 100;

#

Random number between 1 to "target level x 2 + 2" multiplied by (100 + 1 * 2 + Pianist feat level * 10) / 100

#

From the look of thing toolLv for music is always set to 1

#

If the listener is a unique character, double the money

#

If we are not in music quest:
if the reward money is more than 25, divided it by 2
if the reward money is still more than 50, divided it by another 2
if the reward money is still more than 100, divided it by another 2
if we are in player owned land, divided the reward by 5

hybrid tangle
mint jackal
#

so

mint jackal
hybrid tangle
#

Yea, that's why it's 25%

mint jackal
#

it's just if after if

hybrid tangle
#

it's ecopo only if all other conditions fail

mint jackal
#

yeah

hybrid tangle
#

which means 3/4 * 3/4 * 2/3 * 2/3

#

which is 0.25

mint jackal
#

but then again, math is my worst subject

#

I kinda work it backward

#

ecopon is the default

hybrid tangle
#

Yes, and every other check is after it

mint jackal
#

so casino check is always 1/3

#

cus it's last right

hybrid tangle
#

Correct

mint jackal
#

so tomato would be 66.66 * 1/3 percent

#

which is 22.22%

#

and plat is 22.22 * 1/4

#

And i keep repeat that

hybrid tangle
#

That's

#

where ya miss the mark

#

Plat is 1/4 times "not tomato" times "not casino"

#

but your math does "1/4 times "tomato" times "not casino"

mint jackal
#

oh right

#

yeah it's better if someone else do the math

#

Can you do that?

hybrid tangle
#
Gacha = (1/4)*(3/4)*(2/3)*(2/3) = 8.3%~
Plat = (1/4)*(2/3)*(2/3) = 11.1%~
Tomato = (1/3)*(2/3) = 22.22%~
Casino coin = (1/3) = 33.33%~```
mint jackal
#

Now then, the last part of the equation

#

lemme check what those evalue numbers are

hybrid tangle
#

241 is music skill

mint jackal
#

int num2 = ( music skill * 10 + 100) / ((owner.IsPCFaction && owner.memberType == FactionMemberType.Default) ? 1 : 10);

hybrid tangle
#

I gotta go look at bread in the oven, but do note that this is checking for non-PC stuff

mint jackal
#

so non-player npc of player faction got the num2 divided by 10 while player is 1

#

wait

#

what is c_allowance

#

seem like if npc member of player faction got more money from playing music than the ceiling dictated by their music skill, the money go to their "allowance" instead of getting the actual oren

hybrid tangle
#

Allowance is "money" they spend on training and such

#

iirc that change was added in there to prevent the mass bard farm

mint jackal
#

I see

steel temple
dusk nymph
#

maths wise, is snowy biome better than forest? the difference is basically 12 residents with blog jobs

#

im not sure what the value of +15 attractiveness is vs 12 residents that can generate 120+ publicity

stone mica
#

well as I see it publicity can infinitely go up

#

attractiveness cannot

#

therefore I would maximize the things that are fixed and worry about just getting mroe gold bars for upgrading publicity

dusk nymph
#

im seeing an odd situation where one base has 63 publicity and generates 137 visitors per month...but another base has 200+ publicity and also generates about 137 visitors per month....the maths does not add up.

the only explanation i can think of is that either visitors arent being generated properly if you are in the base, or danger level does decrease the number of visitors.

dusk nymph
#

i think body pillows have some kind of hidden penalty for home value, they are not adding their full value to the home, but everything else like boats seem to add their full value

#

its ranking the 302k body pillows lower than the 7.2k memorial block

dusk nymph
#

someone said its because it cannot be sold which reduces home value

dusk nymph
stone mica
#

Idk

primal raven
dusk nymph
#

well if you find the cause, let me know

primal raven
#

I'll look, but no promises

dusk nymph
#

thanks

primal raven
#

I'd need to debug this. can't really do it at work

dusk nymph
#

i remember seeing someone say that appraising can actually identify miracle items but it requires an insanely high skill level. anyone happen to know what it is?

dusk nymph
#

well i tried with +10k appraisal on an item and it didnt work

dusk nymph
#

tried 100k as well, didnt work

dusk nymph
#

has anyone looked at the code to see how the chance to auto collect treasure maps is calculated? for residents with the treasure hunt job

hybrid tangle
dusk nymph
#

thanks, so is there any way to see a resident's exact efficiency?

#

also im guessing the check is made per treasure hunt job at the start of a new day?

#

so a resident with 2x treasure hunt makes 2x checks?

hybrid tangle
#

Probably

hybrid tangle
#

it's 50 + bedbonus - penalties

#

iirc

dusk nymph
#

uh, skill level doesnt matter?

hybrid tangle
#

It do, also the production bonus of the base matters

#

Tldr it's efficiency

#
  public int GetEfficiency(Chara c)
    {
        int num = 50;
        FactionBranch factionBranch = ((c.currentZone != null) ? c.homeBranch : EClass._zone?.branch);
        if (factionBranch == null || (c.currentZone != null && c.currentZone != factionBranch.owner))
        {
            return 0;
        }
        if (c.currentZone == null || c.currentZone == EClass._zone)
        {
            if ((!source.destTrait.IsEmpty() || !source.workTag.IsEmpty()) && !GetAI(c).SetDestination())
            {
                return 0;
            }
            if (c.noMove && c.pos != null && c.pos.FindThing<TraitGeneratorWheel>() != null)
            {
                return 0;
            }
            if (c.memberType != FactionMemberType.Livestock)
            {
                TraitBed traitBed = c.FindBed();
                if (traitBed != null)
                {
                    num += 30 + traitBed.owner.GetTotalQuality() + traitBed.owner.Evalue(750);
                }
            }
        }
        if (source.alias == "Breeding")
        {
            num = num * c.race.breeder / 100;
        }
        num += GetLv(c);
        if (c.affinity.value < 0)
        {
            num += c.affinity.value;
        }
        num = num * (100 + factionBranch.Evalue(3708) * 10) / 100;
        if (num >= 0)
        {
            return num;
        }
        return 0;```
wispy fossil
#

Added earthquake and meteor removed ball and touch

#

the lightly colored lines are standard deviation which just stop mattering at high mag low level

#

Like i said last time , you can put it on wiki or whatever if you wish. Just don't credit me

dusk nymph
#

does anyone have information on the "eye of x" abilities and what stat resists them?

steel temple
#

Eye of X are in the code as "ActGazeX"
Eye of Dim causes Dim. Dim is always resisted by WIL
Eye of Insanity causes insanity. Insanity is resisted by Learning.
Eye of Mana deals magic damage. It is resisted by resistance as normal.
Eye of Mutation causes mutation. It is resisted by ResMutation.

All are SP moves that are based on the Magic stat. Did you need anything else?

hybrid tangle
#

Eye of Mana drains mp iirc

steel temple
#

No

hybrid tangle
#

Ya sure? Cause it procs DrainMana, which at least looks like it removes mana from the target (if it's alive and has any) and gives mana to you

steel temple
#

Check it out yourself. SetElement ActGazeMana 1

#

Wait, it might be the way I was testing it 🤔 Gimmie a sec

#

It totally steals mana. Downside of testing against yourself is that it gave it back the stolen mana lol

hybrid tangle
#

"oops" :D

dusk nymph
#

is it actually possible to get recipe upgrades from dismantling beds if you already have the recipe learnt?

#

supposedly its a 5% chance to get the base recipe from dismantling but im talking about recipe upgrades (level 2, level 3, etc)

hybrid tangle
#

It should be 10% chance to learn the recipe, and iirc if you already know the recipe it's 1/30 (when the 10% succeeds, so 1/300 overall) to get a recipe (or a recipe upgrade if no eligible new recipes exist) from the same category, not necessarily the same item

dusk nymph
#

oh thats definately not worth it then...

hybrid tangle
#

Alright, with the Wishing nerf, I updated my quick python Wishing calc, but testing ingame is giving results 1 below of expected amount (eg. my code says that with values of X, wishing for Sun crystals should give between 13-17 based on negotiation, but testing ingame shows the range to be 12-16 instead)

#

Can anyone spot where I did a fuckup?

def WishCalc_Rod(mag: int, per: int, magdev: int, price: int):
    #Wish_calc
    #mag = 824
    #per = 610
    #magdev = 500
    #price = 1290

    power = 100 * (100 + magdev * 10 + per // 2 + mag // 2) // 100
    result = 1
    wishvalue = 5000 + power * 50

    wishvalue -= price
    for i in range(1000):
        num3 = price + i * 2 * (price + 500)
        
        if num3 > 0 and wishvalue > num3:
            result += 1
            wishvalue -= num3
        
    return result```
#

The relevant c# from ActEffect.cs is
int num = 1; followed by

if (!flag2 && thing.trait.CanStack)
                        {
    int num2 = wishValue;
    int price = thing.GetPrice();
    num2 -= price;
    for (int i = 1; i < 1000; i++)
    {
        int num3 = price + i * 2 * (price + 500);
        if (num3 > 0 && num2 > num3)
        {
            num++;
            num2 -= num3;
        }
    }``` where num is the created amount
#

Nvm

#

Spotted it the moment I pasted here

#

didn't realize the loop now starts from i = 1 instead of i= 0

#

..

steel temple
#

the loop now starts from i = 1 instead of 0 hope that helps

mint jackal
#

Since there aint seem to be the mention of it (edit: by "it" refer to "how much physical/void damage got increase by anti-magic enchant") yet, I just wanna put it here that Anti-magic boost physical/void damage by 0.5% per level

{
    e = Element.Void;
    if (origin != null)
    {
        dmg = dmg * Mathf.Max(100 + origin.Evalue(93) / 2, 10) / 100;
    }
}```From Card.cs
hybrid tangle
#

It's pretty well known and pretty sure on the wiki too

mint jackal
#

That's the reason i'd gone look it up, seeing how much damage it amp

hybrid tangle
#

Ah

mint jackal
#

Thus, elin math posing

hybrid tangle
#

It's asked in questions every so oftne so am just used to everyone knowing it's 0.5% both ways

mint jackal
#

yet it cant seem to find ever mention of it in wiki nor even in discord

#

even it got burried so loong ago

hybrid tangle
#

Yea, wiki intentionally lacks specifics such as that

#

if they're added they're generally a footnote at the bottom, such as heavy/light eater

mint jackal
#

Wish it did tho, would save me time looking this up

hybrid tangle
#

It's good training

#

and you can add them now that we have permission to put stuff found from the code in there :D

#

just no code itself on normal people facing pages

mint jackal
#

I still do not have wiki account lol & I really need to go to sleep~

mint jackal