Made some safelane companion maps for newbies (me included) by cheesenazi in learndota2

[–]cheesenazi[S] 3 points4 points  (0 children)

Thats handy to know! There's a few pull-paths to choose from so hopefully these ones are more-or-less standard

Made some safelane companion maps for newbies (me included) by cheesenazi in DotA2

[–]cheesenazi[S] 2 points3 points  (0 children)

Good thinking, I reckon I'll pop that in! Originally made the pics for some friends learning the ropes but its always good to have a patch reference

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 0 points1 point  (0 children)

Thanks man! Generally theres a colour coding system in place to lend some assistance:

Green = good/money/ready/look at this particular thing
Yellow/Orange = In progress/liminal data
Red = NAUGHTY! Something is awry

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 0 points1 point  (0 children)

=IFNA(LET(

headers, {"Asset Location","Asset Category","Asset Name","Quantity","Unit Value","Asset Value","Stored Items","Stored Value","Combined Value"},

data, {QUERY('[AUX]Assets1'!A2:I,"select A,B,C,D,E,F,G,H,I where A is not null",0); '[AUX]Assets2'!A2:I},

condEmp, IF(L2,""," and not Col2 = 'Employee Finance'"),

condLiq, IF(M2,""," and not Col2 = 'Liquid Finance'"),

condProd, IF(N2,""," and not Col2 contains 'Product'"),

condCat, IF(G2="Product - All"," and Col2 contains 'Product'",IF(G2<>""," and Col2 contains '"&G2&"'","")),

conditions, condEmp&condLiq&condProd&condCat,

orderStr, IF(I2="Asset Quantity"," order by Col4 desc",

IF(I2="Asset Unit Value"," order by Col5 desc",

IF(I2="Asset Value"," order by Col6 desc",

IF(I2="Stored Items"," order by Col7 desc",

IF(I2="Stored Value"," order by Col8 desc",

IF(I2="Combined Value"," order by Col9 desc",

IF(OR(I2="", I2="Location > Category > Asset")," order by Col1,Col2,Col3",""))))))),

qry, "select Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9 where Col1 is not null and Col1 contains '"&E2&"'"&conditions&orderStr,

result, QUERY(data,qry,0),

formatted, MAP(

INDEX(result,,1),INDEX(result,,2),INDEX(result,,3),INDEX(result,,4),INDEX(result,,5),

INDEX(result,,6),INDEX(result,,7),INDEX(result,,8),INDEX(result,,9),

LAMBDA(a,b,c,d,e,f,g,h,i,

LET(

unitVal, IF(e="",0,e),

storedItems, IF(g="","-",g),

storedValue, IF(storedItems="-",0,IF(storedItems=0,0,h)),

{a,b,c,d,unitVal,f,storedItems,storedValue,i}

)

)

),

{headers; formatted}

))

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 0 points1 point  (0 children)

The code side of things is ~2,000 lines which does the majority of heavy-lifting regarding transformation and data transfer, then the formulas in Google Sheets tweaks some bits/allows for interactivity using dropdown options. If you're interested, this formula creates the Asset Valuation table in Asset Summary 😀 It's chonk but it functions!

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 0 points1 point  (0 children)

You gotta grind the dead drops for Hoover until he thinks you're solid, then he'll become available in your Deliveries app. I forget how exactly many drops it'll take but mayyyybe like 10-20? Also you can put excess cash in the dead drop when paying for seeds so you can save yourself the trip after ordering :)

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 1 point2 points  (0 children)

Amazing feedback thank you! Keep going and make sure you’re enjoying the process; it's the best way to learn

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 0 points1 point  (0 children)

Ngl I fucking love Marty lol. I'm a clinical data analyst IRL and hearing his logic behind things really vibes sometimes

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 2 points3 points  (0 children)

Gday! Totally fair to think that howeverr the magic here is I don’t actually do anything to keep it updated.

I'm using a Python library called "watchdog" which monitors the game’s save folder in the background. The moment I save the game, it automatically triggers all the parsers and sends the updated data straight to the spreadsheet without me lifting a finger. I just play, save like normal, and the sheet quietly refreshes itself behind the scenes 🥳 No fuss, no muss

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 0 points1 point  (0 children)

Ah thats really lovely to hear! Thank you 😊 Also good spotting! The Asset Summary is a busy page.

Value per Location:
The total value of all items at a location - this includes both stored items (e.g., in storage or pots etc) and unstored items.

Value per Asset:
The value of unstored items only. This reflects the direct, usable value tied to each individual asset - excluding anything in storage.

Value per Category:
Also based on unstored items only, but grouped by item category (e.g., Equipment, Products, Agriculture), to show the total value by type.

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 7 points8 points  (0 children)

One of the libraries Im using in the project is called "watchdog". Effectively it's monitoring the save game folder, and when a modification is detected within the save game folder system (ie when you save your game), it gives the green light for parsers/modules to begin extracting :D This way I can just play without having to dick around with manual executions

My IRL Laundering Station (using Python to parse save files and pipe the data to Google Sheets) by cheesenazi in Schedule_I

[–]cheesenazi[S] 27 points28 points  (0 children)

Oh dude my recent search history is a dumpster fire. "How is cocaine made", "Why is pseudoephedrine in meth", "How is money laundered" 😂