#Elin Math
1 messages · Page 2 of 1
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
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
hmm, im eating atm, do you want to just post a screenshot here maybe?
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
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
no its 11/8 on my game
strange, for me it says 129 visitors this month and 29 guests in the resident board
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
strange, my numbers are quite consistent
how often do you visit this place?
but im not getting 100+ visitors per hour, i average 30-50 visitors with 100+ publicity
rarely i guess
maybe theres something about the simulation that breaks down with large time gaps
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
yea it is
its not even like 10% of what my taxes generate
and not even .001% of what my blueberries generate
from what someone else said, tourism only generates income if it is lower than the normal income the guests produce
I think in one month my two blueberry farms generate like a collective ... 5000 * 3 * 1000
so 15m
which is why getting millions of tourism does nothing
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
but yea, are you sure its not 144 visitors per month here?
I have no idea 😐
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);
}
}
}
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
Where ya get these numbers from? My quickmaff said Ecopo chance is 25%
so
Noticed how there's no ELSE
Yea, that's why it's 25%
it's just if after if
it's ecopo only if all other conditions fail
yeah
but then again, math is my worst subject
I kinda work it backward
ecopon is the default
Yes, and every other check is after it
Correct
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
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"
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%~```
241 is music skill
int num2 = ( music skill * 10 + 100) / ((owner.IsPCFaction && owner.memberType == FactionMemberType.Default) ? 1 : 10);
I gotta go look at bread in the oven, but do note that this is checking for non-PC stuff
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
Allowance is "money" they spend on training and such
iirc that change was added in there to prevent the mass bard farm
I see
This is honestly worth sending in as a bug report if you haven’t already
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
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
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.
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
someone said its because it cannot be sold which reduces home value
how did you get 460 guests in the base at one time?
Idk
That doesn't seem to be the case. All heirloom worths are calculated without the purpose of selling
well if you find the cause, let me know
I'll look, but no promises
thanks
I'd need to debug this. can't really do it at work
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?
well i tried with +10k appraisal on an item and it didnt work
tried 100k as well, didnt work
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
If efficiency > rnd(5000), chest
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?
Probably
Not without mods
it's 50 + bedbonus - penalties
iirc
uh, skill level doesnt matter?
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;```
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
does anyone have information on the "eye of x" abilities and what stat resists them?
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?
Eye of Mana drains mp iirc
No
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
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
"oops" :D
thanks
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)
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
oh thats definately not worth it then...
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
..
the loop now starts from i = 1 instead of 0 hope that helps
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
Yeah but not stated by how much
That's the reason i'd gone look it up, seeing how much damage it amp
Ah
Thus, elin math posing
It's asked in questions every so oftne so am just used to everyone knowing it's 0.5% both ways
yet it cant seem to find ever mention of it in wiki nor even in discord
even it got burried so loong ago
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
Wish it did tho, would save me time looking this up
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
I still do not have wiki account lol & I really need to go to sleep~
Here's the graph i use to calculate the hearthstone growth table
https://www.desmos.com/calculator/tly26efofa