z_mirror/Krastorio2
git clone https://git.raiguard.me/z_mirror/Krastorio2
deec6061
trunk
1local util =require ( "scripts.util" ) 2 3local patreon_items ={ 4{ name ="kr-shelter-plus" , count =1 } , 5{ name ="kr-accelerator" , count =1 } , 6{ name ="firearm-magazine" , count =190 } , 7{ name ="kr-potato" , count =6 } , 8} 9 10local high_patrons ={ 11-- Mod Developers 12[ "krastor" ] =true , 13[ "linver" ] =true , 14[ "raiguard" ] =true , 15-- High patrons 16[ "andrewskier" ] =true , 17[ "andromedafallen" ] =true , 18[ "antt1995" ] =true , 19[ "aski_raven" ] =true , 20[ "astazora" ] =true , 21[ "biusart" ] =true , 22[ "circk" ] =true , 23[ "cvamp" ] =true , 24[ "darkstroker" ] =true , 25[ "djnaphthalin" ] =true , 26[ "dmitrii" ] =true , 27[ "dr.feelgood999" ] =true , 28[ "dusk88" ] =true , 29[ "egdod" ] =true , 30[ "gbs5009" ] =true , 31[ "generaltank" ] =true , 32[ "grumblesxl" ] =true , 33[ "jkkelley86" ] =true , 34[ "jonasrejman" ] =true , 35[ "lordfish" ] =true , 36[ "max.perry" ] =true , 37[ "melphin" ] =true , 38[ "mkaito" ] =true , 39[ "moonded" ] =true , 40[ "nukeufo" ] =true , 41[ "pandabeezy" ] =true , 42[ "quezler" ] =true , 43[ "reysdad" ] =true , 44[ "rivsung" ] =true , 45[ "rougefallout365" ] =true , 46[ "senard" ] =true , 47[ "sollevix" ] =true , 48[ "therightmark" ] =true , 49[ "tobi" ] =true , 50[ "tobivollebregt" ] =true , 51[ "vladhc" ] =true , 52[ "wassabee" ] =true , 53[ "zippyit" ] =true , 54-- High supporters 55[ "alright" ] =true , 56[ "andrew deren" ] =true , 57[ "andromeda fallen" ] =true , 58[ "arun bhat" ] =true , 59[ "aski raven" ] =true , 60[ "austin" ] =true , 61[ "bob" ] =true , 62[ "brayden mclean" ] =true , 63[ "chris hazen" ] =true , 64[ "donut7163" ] =true , 65[ "george elliott-hunter" ] =true , 66[ "george simpson" ] =true , 67[ "ivan devyatko" ] =true , 68[ "james kelley" ] =true , 69[ "jan dragsbæk" ] =true , 70[ "jan šipr" ] =true , 71[ "john wrangle" ] =true , 72[ "jonas rejman" ] =true , 73[ "josh strunk" ] =true , 74[ "konstantin popichev" ] =true , 75[ "koshirun treebone" ] =true , 76[ "mark harrison" ] =true , 77[ "matt tyler" ] =true , 78[ "maximilian bork" ] =true , 79[ "rcobbe" ] =true , 80[ "russell obets" ] =true , 81[ "saulius zilis" ] =true , 82[ "vladimir kravtsov" ] =true , 83[ "windsinger" ] =true , 84[ "zoey oliva" ] =true , 85[ "сергій руденко" ] =true , 86-- Low supporters (< 9 dollars) 87-- These don't get perks, but are here for posterity 88-- ["adrian leonhard"] = true, 89-- ["andrew spade"] = true, 90-- ["billbo99"] = true, 91-- ["chanz"] = true, 92-- ["charles paquin"] = true, 93-- ["chosen"] = true, 94-- ["craig a"] = true, 95-- ["dang quang"] = true, 96-- ["daniel vollmer"] = true, 97-- ["deterlo"] = true, 98-- ["dirk m"] = true, 99-- ["donny"] = true, 100-- ["gareth knowles"] = true, 101-- ["hackerman"] = true, 102-- ["igor borisov"] = true, 103-- ["jmsantos94"] = true, 104-- ["justsoul"] = true, 105-- ["kai-chi huang"] = true, 106-- ["kartikay bagla"] = true, 107-- ["loïc gremaud"] = true, 108-- ["marco montemarani"] = true, 109-- ["mopolo"] = true, 110-- ["niv"] = true, 111-- ["nozoki"] = true, 112-- ["pavlo bulanchuk"] = true, 113-- ["paweł g."] = true, 114-- ["peter50216"] = true, 115-- ["peter zelenay"] = true, 116-- ["raymond"] = true, 117-- ["raymond lau"] = true, 118-- ["ryan"] = true, 119-- ["ryan barker"] = true, 120-- ["seleck"] = true, 121-- ["shafnir"] = true, 122-- ["showwin"] = true, 123-- ["simon harvey"] = true, 124-- ["srdis"] = true, 125-- ["webchip"] = true, 126-- ["wolfgang weber"] = true, 127-- ["влад"] = true, 128-- ["сергей ложкин"] = true, 129} 130 131--- @param player LuaPlayer 132--- @param used_console boolean 133local function give_items ( player , used_console ) 134local inventory =player . get_main_inventory () 135if not inventory or not inventory . valid then 136return 137end 138 139if high_patrons [ string . lower ( player . name )] then 140-- Check if we've already given them the items 141if storage . patreon_items_given [ player . index ] then 142player . ( { "message.kr-already-got-patreon-items" } ) 143return 144end 145 146-- Give items 147for _ , item in pairs ( patreon_items ) do 148if prototypes . item [ item . name ] then 149inventory . insert ( item ) 150end 151end 152 153storage . patreon_items_given [ player . index ] =true 154player . ( { "message.kr-received-patreon-items" } ) 155elseif used_console then 156player . ( { "message.kr-not-a-patron" } ) 157if prototypes . item [ "kr-spoiled-potato" ] then 158inventory . insert ( { name ="kr-spoiled-potato" , count =1 } ) 159end 160end 161end 162 163--- @param e EventData.on_player_created|EventData.on_cutscene_cancelled 164local function on_give_items ( e ) 165local player =game . get_player ( e . player_index ) 166if not player then 167return 168end 169give_items ( player , false ) 170end 171 172--- @class PatreonHandler : event_handler 173local patreon ={} 174 175function patreon . on_init () 176--- @type table<uint, boolean> 177storage . patreon_items_given ={} 178end 179 180patreon . events ={ 181[ defines . events . on_cutscene_cancelled ] =on_give_items , 182[ defines . events . on_player_created ] =on_give_items , 183} 184 185util . add_commands ( { 186[ "kr-give-patreon-items" ] =function ( e ) 187local player =game . get_player ( e . player_index ) --[[@as LuaPlayer]] 188give_items ( player , true ) 189end , 190} ) 191 192return patreon