class MyTest extends AIController { function Start(); } function MyTest::Start() { local cargoes = AICargoList(); local oil; foreach (cargo, value in cargoes) { if( AICargo.GetCargoLabel(cargo) == "OIL_") { oil = cargo; break; } } local oilrigs = AIIndustryList_CargoProducing(oil); oilrigs.Valuate(AIIndustry.HasDock); oilrigs.KeepValue(1); oilrigs.Valuate(AIIndustry.GetLastMonthProduction, oil); local myRig = oilrigs.Begin(); AISign.BuildSign(AIIndustry.GetLocation(myRig), "origin"); local refineries = AIIndustryList_CargoAccepting(oil); refineries.Valuate(AIIndustry.GetDistanceManhattanToTile, AIIndustry.GetLocation(myRig)); refineries.Sort(AIList.SORT_BY_VALUE, true); local myRef = refineries.Begin(); AISign.BuildSign(AIIndustry.GetLocation(myRef), "destination"); AILog.Info(AITile.GetSlope(0x418E)); // 0x418E comes from Land Area Information tool within the game AILog.Info(AITile.IsCoastTile(0x418E)); AIMarine.BuildDock(0x418E, AIStation.STATION_NEW); while (true) { this.Sleep(50); } }