mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-24 03:53:12 -04:00
Added Medieval era units
Techs now display imformation baed on what's dependant on them Buildings uniques now in humanspeak
This commit is contained in:
parent
017d1f3f89
commit
398b612d8c
@ -62,7 +62,7 @@
|
|||||||
baseDescription: "Adds 1 science for each 2 population in the city.",
|
baseDescription: "Adds 1 science for each 2 population in the city.",
|
||||||
hurryCostModifier:25,
|
hurryCostModifier:25,
|
||||||
maintenance:1,
|
maintenance:1,
|
||||||
unique:"SciencePer2Pop",
|
unique:"Science Per 2 Population",
|
||||||
requiredTech:"Writing"
|
requiredTech:"Writing"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -79,7 +79,7 @@
|
|||||||
culture:1,
|
culture:1,
|
||||||
greatPersonPoints:{production:1},
|
greatPersonPoints:{production:1},
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"WorkerConstruction",
|
unique:"Worker construction increased 25%, provides 2 free workers",
|
||||||
requiredTech:"Mathematics"
|
requiredTech:"Mathematics"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -98,7 +98,7 @@
|
|||||||
culture:3,
|
culture:3,
|
||||||
greatPersonPoints:{science:1},
|
greatPersonPoints:{science:1},
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"FreeSocialPolicy",
|
unique:"Free Social Policy",
|
||||||
requiredTech:"Philosophy"
|
requiredTech:"Philosophy"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -117,7 +117,7 @@
|
|||||||
culture:1,
|
culture:1,
|
||||||
greatPersonPoints:{production:1},
|
greatPersonPoints:{production:1},
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"GoldenAgeLengthIncrease",
|
unique:"Golden Age length increases +50%",
|
||||||
requiredTech:"Civil Service"
|
requiredTech:"Civil Service"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -188,7 +188,7 @@
|
|||||||
culture:1,
|
culture:1,
|
||||||
greatPersonPoints:{culture:1},
|
greatPersonPoints:{culture:1},
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"GreatPersonGenerationIncrease",
|
unique:"+33% great person generation in all cities",
|
||||||
requiredTech:"Theology"
|
requiredTech:"Theology"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -207,7 +207,7 @@
|
|||||||
greatPersonPoints:{gold:1},
|
greatPersonPoints:{gold:1},
|
||||||
culture:1,
|
culture:1,
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"TradeRouteGoldIncrease",
|
unique:"Gold from all trade routes +25%",
|
||||||
requiredTech:"Currency"
|
requiredTech:"Currency"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -215,7 +215,7 @@
|
|||||||
baseDescription: "40% of food is carried over after a new citizen is born",
|
baseDescription: "40% of food is carried over after a new citizen is born",
|
||||||
maintenance:1,
|
maintenance:1,
|
||||||
hurryCostModifier:25,
|
hurryCostModifier:25,
|
||||||
unique:"FoodCarriesOver"
|
unique:"40% of food is carried over after a new citizen is born"
|
||||||
requiredTech:"Engineering"
|
requiredTech:"Engineering"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -245,7 +245,7 @@
|
|||||||
percentStatBonus:{science:33},
|
percentStatBonus:{science:33},
|
||||||
specialistSlots:{science:2},
|
specialistSlots:{science:2},
|
||||||
requiredBuilding:"Library",
|
requiredBuilding:"Library",
|
||||||
unique:"JunglesProvideScience",
|
unique:"Jungles provide +2 science",
|
||||||
requiredTech:"Education"
|
requiredTech:"Education"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -261,11 +261,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Angkor Wat",
|
name:"Angkor Wat",
|
||||||
baseDescription: "Cost of aquiring new tiles reduced by 25%",
|
baseDescription: "Cost of acquiring new tiles reduced by 25%",
|
||||||
culture:1,
|
culture:1,
|
||||||
greatPersonPoints:{production:1},
|
greatPersonPoints:{production:1},
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"NewTileCostReduction",
|
unique:"Cost of acquiring new tiles reduced by 25%",
|
||||||
requiredTech:"Chivalry"
|
requiredTech:"Chivalry"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -310,7 +310,7 @@
|
|||||||
baseDescription: "Culture in all cities increased by 25%",
|
baseDescription: "Culture in all cities increased by 25%",
|
||||||
culture:1,
|
culture:1,
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"CultureIncrease",
|
unique:"Culture in all cities increased by 25%",
|
||||||
requiredTech:"Acoustics"
|
requiredTech:"Acoustics"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -328,7 +328,7 @@
|
|||||||
baseDescription: "Unhappiness from population decreased by 10%",
|
baseDescription: "Unhappiness from population decreased by 10%",
|
||||||
culture:1,
|
culture:1,
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"CitizenUnhappinessDecreased",
|
unique:"Unhappiness from population decreased by 10%",
|
||||||
requiredTech:"Banking"
|
requiredTech:"Banking"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -346,7 +346,7 @@
|
|||||||
culture:1,
|
culture:1,
|
||||||
happiness:4,
|
happiness:4,
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"EmpireEntersGoldenAge",
|
unique:"Empire enters golden age",
|
||||||
requiredTech:"Acoustics"
|
requiredTech:"Acoustics"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -384,7 +384,7 @@
|
|||||||
culture:1,
|
culture:1,
|
||||||
happiness:4,
|
happiness:4,
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"FreeGreatArtistAppears",
|
unique:"Free Great Artist Appears",
|
||||||
requiredTech:"Archaeology"
|
requiredTech:"Archaeology"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -395,7 +395,7 @@
|
|||||||
requiredBuilding:"University",
|
requiredBuilding:"University",
|
||||||
maintenance:3,
|
maintenance:3,
|
||||||
hurryCostModifier:0,
|
hurryCostModifier:0,
|
||||||
unique:"SciencePer2Pop",
|
unique:"Science Per 2 Population",
|
||||||
requiredTech:"Scientific Theory"
|
requiredTech:"Scientific Theory"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -434,7 +434,7 @@
|
|||||||
baseDescription: "Culture cost of adopting new Policies reduced by 10%",
|
baseDescription: "Culture cost of adopting new Policies reduced by 10%",
|
||||||
culture:5,
|
culture:5,
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"PolicyCostReduction",
|
unique:"Culture cost of adopting new Policies reduced by 10%",
|
||||||
requiredTech:"Flight"
|
requiredTech:"Flight"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -452,7 +452,7 @@
|
|||||||
culture:1,
|
culture:1,
|
||||||
happiness:5
|
happiness:5
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"HappinessPerSocialPolicy",
|
unique:"Provides 1 happiness per social policy",
|
||||||
requiredTech:"Radio"
|
requiredTech:"Radio"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -496,14 +496,14 @@
|
|||||||
maintenance:3,
|
maintenance:3,
|
||||||
cannotBeBuiltWith:"Nuclear Plant",
|
cannotBeBuiltWith:"Nuclear Plant",
|
||||||
requiredTech:"Ecology",
|
requiredTech:"Ecology",
|
||||||
unique:"MustBeNextToDesert"
|
unique:"Must be next to desert"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Apollo Program",
|
name:"Apollo Program",
|
||||||
baseDescription: "Allows the building of spaceship parts",
|
baseDescription: "Allows the building of spaceship parts",
|
||||||
cost:1500,
|
cost:1500,
|
||||||
isWonder:true,
|
isWonder:true,
|
||||||
unique:"ApolloProgram",
|
unique:"Enables construction of Spaceship parts",
|
||||||
requiredTech:"Rocketry"
|
requiredTech:"Rocketry"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -523,7 +523,7 @@
|
|||||||
production:3,
|
production:3,
|
||||||
requiredResource:"Aluminum",
|
requiredResource:"Aluminum",
|
||||||
cost:360,
|
cost:360,
|
||||||
unique:"SpaceshipPartProductionBoost"
|
unique:"Increases production of spaceship parts by 50%"
|
||||||
requiredTech:"Robotics"
|
requiredTech:"Robotics"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -531,27 +531,27 @@
|
|||||||
baseDescription: "Spaceship part",
|
baseDescription: "Spaceship part",
|
||||||
requiredResource:"Aluminum",
|
requiredResource:"Aluminum",
|
||||||
requiredTech:"Robotics",
|
requiredTech:"Robotics",
|
||||||
unique:"SpaceshipPart"
|
unique:"Spaceship part"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"SS Cockpit",
|
name:"SS Cockpit",
|
||||||
baseDescription: "Spaceship part",
|
baseDescription: "Spaceship part",
|
||||||
requiredResource:"Aluminum",
|
requiredResource:"Aluminum",
|
||||||
requiredTech:"Satellites",
|
requiredTech:"Satellites",
|
||||||
unique:"SpaceshipPart"
|
unique:"Spaceship part"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"SS Engine",
|
name:"SS Engine",
|
||||||
baseDescription: "Spaceship part",
|
baseDescription: "Spaceship part",
|
||||||
requiredResource:"Aluminum",
|
requiredResource:"Aluminum",
|
||||||
requiredTech:"Particle Physics",
|
requiredTech:"Particle Physics",
|
||||||
unique:"SpaceshipPart"
|
unique:"Spaceship part"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"SS Statis Chamber",
|
name:"SS Statis Chamber",
|
||||||
baseDescription: "Spaceship part",
|
baseDescription: "Spaceship part",
|
||||||
requiredResource:"Aluminum",
|
requiredResource:"Aluminum",
|
||||||
requiredTech:"Nanotechnology",
|
requiredTech:"Nanotechnology",
|
||||||
unique:"SpaceshipPart"
|
unique:"Spaceship part"
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -8,17 +8,14 @@
|
|||||||
{
|
{
|
||||||
name:"Pottery",
|
name:"Pottery",
|
||||||
row:2,
|
row:2,
|
||||||
description:"Allows your cities to construct a granary, which provides food."
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Animal Husbandry",
|
name:"Animal Husbandry",
|
||||||
row:5,
|
row:5
|
||||||
description:"Reveals horses, and allows workers to build pastures, which improve various animal resources."
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Mining",
|
name:"Mining",
|
||||||
row:9,
|
row:9
|
||||||
description:"Allows workers to build mines, which grant access to several strategic and luxury resources and increases production. Also allows workers to clear forests."
|
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
@ -34,43 +31,37 @@
|
|||||||
name:"Sailing",
|
name:"Sailing",
|
||||||
row:1,
|
row:1,
|
||||||
prerequisites:["Pottery"],
|
prerequisites:["Pottery"],
|
||||||
description:"Does nothing since we have no sea tiles - In theory, Allows access to sea resources by building work boats"
|
baseDescription:"Does nothing since we have no sea tiles - In theory, Allows access to sea resources by building work boats"
|
||||||
},*/
|
},*/
|
||||||
{
|
{
|
||||||
name:"Calendar",
|
name:"Calendar",
|
||||||
row:2,
|
row:2,
|
||||||
prerequisites:["Pottery"],
|
prerequisites:["Pottery"]
|
||||||
description:"Allows your workers to build Plantations, which grant access to several luxury resources, and the Stonehenge wonder, providing culture"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Writing",
|
name:"Writing",
|
||||||
row:3,
|
row:3,
|
||||||
prerequisites:["Pottery"],
|
prerequisites:["Pottery"]
|
||||||
description:"Allows your cities to construct libraries, which increases science produced. Also enables construction of the Great Library wonder."
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Trapping",
|
name:"Trapping",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Animal Husbandry"],
|
prerequisites:["Animal Husbandry"]
|
||||||
description:"Allows your workers to build Camps, increasing gold and granting access to several luxury resources. Also enables construction of Circuses, providing happiness."
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"The Wheel",
|
name:"The Wheel",
|
||||||
row:6,
|
row:6,
|
||||||
prerequisites:["Animal Husbandry"],
|
prerequisites:["Animal Husbandry"]
|
||||||
description:"Allows construction of roads, speeding movement and providing gold from trade. ALSO WATERWHEELS-TODO"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Masonry",
|
name:"Masonry",
|
||||||
row:9,
|
row:9,
|
||||||
prerequisites:["Mining"],
|
prerequisites:["Mining"]
|
||||||
description:"Allows workers to build quarries, granting access to stone and marble resources."
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Bronze Working",
|
name:"Bronze Working",
|
||||||
row:10,
|
row:10,
|
||||||
prerequisites:["Mining"],
|
prerequisites:["Mining"]
|
||||||
description:"Allows workers to remove jungles and clear marshes"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -86,25 +77,22 @@
|
|||||||
cost:95,
|
cost:95,
|
||||||
row:1,
|
row:1,
|
||||||
prerequisites:["Sailing"],
|
prerequisites:["Sailing"],
|
||||||
description:"Does nothing since we have no sea tiles - In theory, Allows construction of lighthouses, providing more food for sea tiles"
|
baseDescription:"Does nothing since we have no sea tiles - In theory, Allows construction of lighthouses, providing more food for sea tiles"
|
||||||
},*/
|
},*/
|
||||||
{
|
{
|
||||||
name:"Horseback Riding",
|
name:"Horseback Riding",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Trapping","The Wheel"],
|
prerequisites:["Trapping","The Wheel"]
|
||||||
description:"Allows construction of stables, which increase production on cattle, sheep and horses, and the Circus Maximus wonder"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Mathematics",
|
name:"Mathematics",
|
||||||
row:7,
|
row:7,
|
||||||
prerequisites:["The Wheel"],
|
prerequisites:["The Wheel"]
|
||||||
description: "Enables construction of the Hanging Gardens wonder. Also enables construction of the Pyramids wonder."
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Construction",
|
name:"Construction",
|
||||||
row:9,
|
row:9,
|
||||||
prerequisites:["Masonry"],
|
prerequisites:["Masonry"]
|
||||||
description:"Allows construction of colosseums, which generate happiness, and building lumber mills on forests, providing production"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -118,26 +106,23 @@
|
|||||||
{
|
{
|
||||||
name:"Philosophy",
|
name:"Philosophy",
|
||||||
row:3,
|
row:3,
|
||||||
prerequisites:["Writing","Calendar"],
|
prerequisites:["Writing","Calendar"]
|
||||||
description:"Allows construction of temples, which generate culture, and the Oracle wonder"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Currency",
|
name:"Currency",
|
||||||
row:7,
|
row:7,
|
||||||
prerequisites:["Mathematics"],
|
prerequisites:["Mathematics"],
|
||||||
description:"Enables construction of Markets and Mints, which increase gold, and conversion of city production to gold. Also enables the Machu Pichu wonder."
|
baseDescription:"Enables conversion of city production to gold"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Engineering",
|
name:"Engineering",
|
||||||
row:8,
|
row:8,
|
||||||
prerequisites:["Mathematics","Construction"],
|
prerequisites:["Mathematics","Construction"]
|
||||||
description:"Enables construction of aqueducts, which speed up city growth"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Iron Working",
|
name:"Iron Working",
|
||||||
row:10,
|
row:10,
|
||||||
prerequisites:["Bronze Working"],
|
prerequisites:["Bronze Working"]
|
||||||
description:"Reveals Iron on map"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -151,26 +136,22 @@
|
|||||||
{
|
{
|
||||||
name:"Theology",
|
name:"Theology",
|
||||||
row:2,
|
row:2,
|
||||||
prerequisites:["Philosophy"],
|
prerequisites:["Philosophy"]
|
||||||
description:"Enables construction of Monasteries, providing culture, and the Hagia Sophia, increasing Great Person generation"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Civil Service",
|
name:"Civil Service",
|
||||||
row:4,
|
row:4,
|
||||||
prerequisites:["Horseback Riding","Philosophy"],
|
prerequisites:["Horseback Riding","Philosophy"]
|
||||||
description:"Enables the Chichen Itza wonder, which increases the length of golden ages, and the National College, increasing science"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Physics",
|
name:"Physics",
|
||||||
row:8,
|
row:8,
|
||||||
prerequisites:["Engineering"],
|
prerequisites:["Engineering"]
|
||||||
description:"Enables construction of the Porcelain Tower, increasing production to science production"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Metal Casting",
|
name:"Metal Casting",
|
||||||
row:10,
|
row:10,
|
||||||
prerequisites:["Construction","Iron Working"],
|
prerequisites:["Construction","Iron Working"]
|
||||||
description:"Enables construction of Forges and Workshops, increasing production, and the Notre Dame wonder, providing happiness,"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -186,25 +167,24 @@
|
|||||||
row:1,
|
row:1,
|
||||||
cost:415,
|
cost:415,
|
||||||
prerequisites:["Optics"],
|
prerequisites:["Optics"],
|
||||||
description:"Does nothing since we have no sea tiles - In theory, allows construction of harbors"
|
baseDescription:"Does nothing since we have no sea tiles - In theory, allows construction of harbors"
|
||||||
},*/
|
},*/
|
||||||
{
|
{
|
||||||
name:"Education",
|
name:"Education",
|
||||||
row:3,
|
row:3,
|
||||||
prerequisites:["Theology","Civil Service"],
|
prerequisites:["Theology","Civil Service"],
|
||||||
description:"Allows cities to convert production to science, construction of Universities which provide science"
|
baseDescription:"Allows cities to convert production to science,"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Chivalry",
|
name:"Chivalry",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Civil Service","Currency"],
|
prerequisites:["Civil Service","Currency"]
|
||||||
description:"Enables construction of the Angkor Wat wonder, reducing cost of aquiring new tiles, construction of Trading Posts on tiles, providing gold"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Machinery",
|
name:"Machinery",
|
||||||
row:8,
|
row:8,
|
||||||
prerequisites:["Physics","Metal Casting"],
|
prerequisites:["Physics","Metal Casting"],
|
||||||
description:"Speeds movement speed on roads and allows you to construct the Ironworks wonder, which gives a massive boost in production"
|
baseDescription:"Speeds movement speed on roads"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -218,26 +198,22 @@
|
|||||||
{
|
{
|
||||||
name:"Astronomy",
|
name:"Astronomy",
|
||||||
row:2,
|
row:2,
|
||||||
prerequisites:[/*"Compass",*/"Education"],
|
prerequisites:[/*"Compass",*/"Education"]
|
||||||
description:"Enables construction of Observatories in cities near mountains"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Acoustics",
|
name:"Acoustics",
|
||||||
row:4,
|
row:4,
|
||||||
prerequisites:["Education","Chivalry"],
|
prerequisites:["Education","Chivalry"]
|
||||||
description:"Enables construction of Opera Houses and the Sistine Chapel, providing culture"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Banking",
|
name:"Banking",
|
||||||
row:6,
|
row:6,
|
||||||
prerequisites:["Chivalry"],
|
prerequisites:["Chivalry"]
|
||||||
description:"Enables construction of banks, increasing gold, and allows construciton of the Forbidden Palace, decreasing unhappiness form population"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Printing Press",
|
name:"Printing Press",
|
||||||
row:8,
|
row:8,
|
||||||
prerequisites:["Machinery","Physics"],
|
prerequisites:["Machinery","Physics"]
|
||||||
description:"Enables construction of the Theatre and Taj Mahal, increasing happiness"
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -252,25 +228,22 @@
|
|||||||
name:"Navigation",
|
name:"Navigation",
|
||||||
row:2,
|
row:2,
|
||||||
prerequisites:["Astronomy"],
|
prerequisites:["Astronomy"],
|
||||||
description:"Does nothing since we have no sea tiles - In theory, allows construction of Frigates and Seaports"
|
baseDescription:"Does nothing since we have no sea tiles - In theory, allows construction of Frigates and Seaports"
|
||||||
},*/
|
},*/
|
||||||
{
|
{
|
||||||
name:"Archaeology",
|
name:"Archaeology",
|
||||||
row:2,
|
row:2,
|
||||||
prerequisites:["Astronomy"],
|
prerequisites:["Astronomy"]
|
||||||
description:"Allows construction of Museums and the Hermitage and Louvre wonders, providing culture"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Economics",
|
name:"Economics",
|
||||||
row:6,
|
row:6,
|
||||||
prerequisites:["Banking","Printing Press"],
|
prerequisites:["Banking","Printing Press"]
|
||||||
description:"Camps and Trading Posts provide +1 gold, allows construction of Windmill and Big Ben"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Chemistry",
|
name:"Chemistry",
|
||||||
row:9,
|
row:9,
|
||||||
prerequisites:["Machinery"],
|
prerequisites:["Machinery"]
|
||||||
description:"Mines and Quarries provide +1 production"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -284,14 +257,12 @@
|
|||||||
{
|
{
|
||||||
name:"Scientific Theory",
|
name:"Scientific Theory",
|
||||||
row:4,
|
row:4,
|
||||||
prerequisites:["Archaeology","Acoustics","Economics"],
|
prerequisites:["Archaeology","Acoustics","Economics"]
|
||||||
description:"Reveals coal and allows construction of Public Schools, providing science. Also improves science from Academy."
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Fertilizer",
|
name:"Fertilizer",
|
||||||
row:7,
|
row:7,
|
||||||
prerequisites:["Chemistry"],
|
prerequisites:["Chemistry"]
|
||||||
description:"+1 food from Farms, Plantations and Pastures"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -305,20 +276,17 @@
|
|||||||
{
|
{
|
||||||
name:"Biology",
|
name:"Biology",
|
||||||
row:3,
|
row:3,
|
||||||
prerequisites:["Archaeology","Scientific Theory","Fertilizer"],
|
prerequisites:["Archaeology","Scientific Theory","Fertilizer"]
|
||||||
description:"Reveals oil and allows construction of oil wells, and construction of hospitals, providing a large amount of food"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Electricity",
|
name:"Electricity",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Scientific Theory"],
|
prerequisites:["Scientific Theory"]
|
||||||
description:"Reveals Aluminium on map and allows construction of stock exchange, increasing gold"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Steam Power",
|
name:"Steam Power",
|
||||||
row:7,
|
row:7,
|
||||||
prerequisites:["Scientific Theory","Chemistry"],
|
prerequisites:["Scientific Theory","Chemistry"]
|
||||||
description:"Enables construction of factories, boosting production, and increases produciton of lumber mills, "
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -333,19 +301,17 @@
|
|||||||
name:"Refrigeration",
|
name:"Refrigeration",
|
||||||
row:4,
|
row:4,
|
||||||
prerequisites:["Electricity"],
|
prerequisites:["Electricity"],
|
||||||
description:"Does nothing since we have no sea tiles - In theory, allows construction of offshore platforms and submarines"
|
baseDescription:"Does nothing since we have no sea tiles - In theory, allows construction of offshore platforms and submarines"
|
||||||
},*/
|
},*/
|
||||||
{
|
{
|
||||||
name:"Radio",
|
name:"Radio",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Electricity"],
|
prerequisites:["Electricity"]
|
||||||
description:"Allows construction of broadcast towers and the Eiffel Tower, increasing culture"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Combustion",
|
name:"Combustion",
|
||||||
row:8,
|
row:8,
|
||||||
prerequisites:["Steam Power"],
|
prerequisites:["Steam Power"]
|
||||||
description:"Allows construction of railroads, providing fast transport and a 25% production boost to cities"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -359,26 +325,23 @@
|
|||||||
{
|
{
|
||||||
name:"Plastics",
|
name:"Plastics",
|
||||||
row:3,
|
row:3,
|
||||||
prerequisites:["Biology"],
|
prerequisites:["Biology"]
|
||||||
description:"Allows construction of Research Lab, increasing science"
|
|
||||||
},/*
|
},/*
|
||||||
{
|
{
|
||||||
name:"Electronics",
|
name:"Electronics",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Radio"],
|
prerequisites:["Radio"],
|
||||||
description:"Contributes only war-relatied things - on hold until AI is introduced - todo"
|
baseDescription:"Contributes only war-relatied things - on hold until AI is introduced - todo"
|
||||||
},*/
|
},*/
|
||||||
{
|
{
|
||||||
name:"Mass Media",
|
name:"Mass Media",
|
||||||
row:6,
|
row:6,
|
||||||
prerequisites:["Radio"],
|
prerequisites:["Radio"]
|
||||||
description:"Allows construction of Stadiums and the Sydney Opera House, boosting happiness"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Flight",
|
name:"Flight",
|
||||||
row:7,
|
row:7,
|
||||||
prerequisites:["Combustion"],
|
prerequisites:["Combustion"]
|
||||||
description:"Allows construction of the Cristo Redentor, reducing cost of new policies"
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -391,20 +354,18 @@
|
|||||||
{
|
{
|
||||||
name:"Pharmaceuticals",
|
name:"Pharmaceuticals",
|
||||||
row:3,
|
row:3,
|
||||||
prerequisites:["Plastics"],
|
prerequisites:["Plastics"]
|
||||||
description:"Enables construction of medical labs, alowing for greater city growth"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Computers",
|
name:"Computers",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Mass Media"],
|
prerequisites:["Mass Media"],
|
||||||
description:"+10% science and production in all cities"
|
baseDescription:"+10% science and production in all cities"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Nuclear Fission",
|
name:"Nuclear Fission",
|
||||||
row:7,
|
row:7,
|
||||||
prerequisites:["Combustion"],
|
prerequisites:["Combustion"]
|
||||||
description:"Allows construction of Nuclear Plants, increasing production"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -417,20 +378,17 @@
|
|||||||
{
|
{
|
||||||
name:"Ecology",
|
name:"Ecology",
|
||||||
row:3,
|
row:3,
|
||||||
prerequisites:["Pharmaceuticals"],
|
prerequisites:["Pharmaceuticals"]
|
||||||
description:"Enables construction of Solar Plants on cities near deserts, increasing production"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Robotics",
|
name:"Robotics",
|
||||||
row:4,
|
row:4,
|
||||||
prerequisites:["Computers"],
|
prerequisites:["Computers"]
|
||||||
description:"Allow construction of SS Boosters, a vital part of the spaceship, and the Spaceship Factory, which speeds the production of spaceship parts"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Rocketry",
|
name:"Rocketry",
|
||||||
row:6,
|
row:6,
|
||||||
prerequisites:["Flight","Computers"],
|
prerequisites:["Flight","Computers"]
|
||||||
description:"Allows you to construct the Apollo Project, to find a way off of this planet!"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -444,20 +402,17 @@
|
|||||||
{
|
{
|
||||||
name:"Nanotechnology",
|
name:"Nanotechnology",
|
||||||
row:3,
|
row:3,
|
||||||
prerequisites:["Robotics","Ecology"],
|
prerequisites:["Robotics","Ecology"]
|
||||||
description:"Allow construction of the SS Statis Chamber, a vital part of the spaceship"
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name:"Satellites",
|
name:"Satellites",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Rocketry","Computers","Ecology"],
|
prerequisites:["Rocketry","Computers","Ecology"]
|
||||||
description:"Allow construction of the SS Cockpit, a vital part of the spaceship"
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name:"Particle Physics",
|
name:"Particle Physics",
|
||||||
row:6,
|
row:6,
|
||||||
prerequisites:["Ecology","Computers","Nuclear Fission"],
|
prerequisites:["Ecology","Computers","Nuclear Fission"]
|
||||||
description:"Allow construction of the SS Engine, a vital part of the spaceship"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -472,7 +427,7 @@
|
|||||||
name:"Future Tech",
|
name:"Future Tech",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Nanotechnology","Particle Physics","Satellites"],
|
prerequisites:["Nanotechnology","Particle Physics","Satellites"],
|
||||||
description:"Who knows what the future holds?"
|
baseDescription:"Who knows what the future holds?"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@
|
|||||||
hurryCostModifier:20
|
hurryCostModifier:20
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Medieval Era */
|
// Medieval Era
|
||||||
{
|
{
|
||||||
name:"Crossbowman",
|
name:"Crossbowman",
|
||||||
baseDescription: "",
|
baseDescription: "",
|
||||||
@ -120,7 +120,41 @@
|
|||||||
cost: 120,
|
cost: 120,
|
||||||
requiredTech:"Machinery",
|
requiredTech:"Machinery",
|
||||||
hurryCostModifier:20
|
hurryCostModifier:20
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
name:"Trebuchet",
|
||||||
|
baseDescription: "",
|
||||||
|
unitType:"Siege",
|
||||||
|
movement:2,
|
||||||
|
strength:12,
|
||||||
|
rangedStrength:14,
|
||||||
|
cost: 120,
|
||||||
|
requiredTech:"Physics",
|
||||||
|
uniques:["Bonus vs City 200%","No defensive terrain bonus","Must set up to ranged attack","Limited Visibility"],
|
||||||
|
hurryCostModifier:20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"Longswordsman",
|
||||||
|
baseDescription: "",
|
||||||
|
unitType:"Melee",
|
||||||
|
movement:2,
|
||||||
|
strength:21,
|
||||||
|
cost: 120,
|
||||||
|
requiredTech:"Steel",
|
||||||
|
requiredResource:"Iron",
|
||||||
|
hurryCostModifier:20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"Pikeman",
|
||||||
|
baseDescription: "",
|
||||||
|
unitType:"Melee",
|
||||||
|
movement:2,
|
||||||
|
strength:16,
|
||||||
|
cost: 90,
|
||||||
|
requiredTech:"Civil Service",
|
||||||
|
uniques:["Bonus vs Mounted 50%"],
|
||||||
|
hurryCostModifier:20
|
||||||
|
},
|
||||||
|
|
||||||
/* Great people */
|
/* Great people */
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ class CityConstructions {
|
|||||||
val stats = Stats()
|
val stats = Stats()
|
||||||
for (building in getBuiltBuildings())
|
for (building in getBuiltBuildings())
|
||||||
stats.add(building.getStats(cityInfo.civInfo.policies.adoptedPolicies))
|
stats.add(building.getStats(cityInfo.civInfo.policies.adoptedPolicies))
|
||||||
stats.science += (cityInfo.buildingUniques.count({ it == "SciencePer2Pop" }) * cityInfo.population.population / 2).toFloat()
|
stats.science += (cityInfo.buildingUniques.count({ it == "Science Per 2 Population" }) * cityInfo.population.population / 2).toFloat()
|
||||||
return stats
|
return stats
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ class CityExpansionManager {
|
|||||||
fun getCultureToNextTile(): Int {
|
fun getCultureToNextTile(): Int {
|
||||||
val numTilesClaimed = cityInfo.tiles.size - 7
|
val numTilesClaimed = cityInfo.tiles.size - 7
|
||||||
var cultureToNextTile = 6 * Math.pow(numTilesClaimed + 1.4813, 1.3)
|
var cultureToNextTile = 6 * Math.pow(numTilesClaimed + 1.4813, 1.3)
|
||||||
if (cityInfo.civInfo.buildingUniques.contains("NewTileCostReduction")) cultureToNextTile *= 0.75 //Speciality of Angkor Wat
|
if (cityInfo.civInfo.buildingUniques.contains("Cost of acquiring new tiles reduced by 25%")) cultureToNextTile *= 0.75 //Speciality of Angkor Wat
|
||||||
if (cityInfo.civInfo.policies.isAdopted("Tradition")) cultureToNextTile *= 0.75
|
if (cityInfo.civInfo.policies.isAdopted("Tradition")) cultureToNextTile *= 0.75
|
||||||
return Math.round(cultureToNextTile).toInt()
|
return Math.round(cultureToNextTile).toInt()
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ class CityInfo {
|
|||||||
if (building.greatPersonPoints != null)
|
if (building.greatPersonPoints != null)
|
||||||
greatPersonPoints.add(building.greatPersonPoints!!)
|
greatPersonPoints.add(building.greatPersonPoints!!)
|
||||||
|
|
||||||
if (civInfo.buildingUniques.contains("GreatPersonGenerationIncrease"))
|
if (civInfo.buildingUniques.contains("+33% great person generation in all cities"))
|
||||||
greatPersonPoints = greatPersonPoints.times(1.33f)
|
greatPersonPoints = greatPersonPoints.times(1.33f)
|
||||||
if (civInfo.policies.isAdopted("Entrepreneurship"))
|
if (civInfo.policies.isAdopted("Entrepreneurship"))
|
||||||
greatPersonPoints.gold *= 1.25f
|
greatPersonPoints.gold *= 1.25f
|
||||||
|
@ -30,7 +30,7 @@ class CityStats {
|
|||||||
val civInfo = cityInfo.civInfo
|
val civInfo = cityInfo.civInfo
|
||||||
var goldFromTradeRoute = civInfo.getCapital().population.population * 0.15 + cityInfo.population.population * 1.1 - 1 // Calculated by http://civilization.wikia.com/wiki/Trade_route_(Civ5)
|
var goldFromTradeRoute = civInfo.getCapital().population.population * 0.15 + cityInfo.population.population * 1.1 - 1 // Calculated by http://civilization.wikia.com/wiki/Trade_route_(Civ5)
|
||||||
if (civInfo.policies.isAdopted("Trade Unions")) goldFromTradeRoute += 2.0
|
if (civInfo.policies.isAdopted("Trade Unions")) goldFromTradeRoute += 2.0
|
||||||
if (civInfo.buildingUniques.contains("TradeRouteGoldIncrease")) goldFromTradeRoute *= 1.25 // Machu Pichu speciality
|
if (civInfo.buildingUniques.contains("Gold from all trade routes +25%")) goldFromTradeRoute *= 1.25 // Machu Pichu speciality
|
||||||
stats.gold += goldFromTradeRoute.toFloat()
|
stats.gold += goldFromTradeRoute.toFloat()
|
||||||
}
|
}
|
||||||
return stats
|
return stats
|
||||||
@ -102,7 +102,7 @@ class CityStats {
|
|||||||
var unhappinessFromCitizens = cityInfo.population.population.toFloat()
|
var unhappinessFromCitizens = cityInfo.population.population.toFloat()
|
||||||
if (civInfo.policies.isAdopted("Democracy"))
|
if (civInfo.policies.isAdopted("Democracy"))
|
||||||
unhappinessFromCitizens -= cityInfo.population.getNumberOfSpecialists() * 0.5f
|
unhappinessFromCitizens -= cityInfo.population.getNumberOfSpecialists() * 0.5f
|
||||||
if (civInfo.buildingUniques.contains("CitizenUnhappinessDecreased"))
|
if (civInfo.buildingUniques.contains("Unhappiness from population decreased by 10%"))
|
||||||
unhappinessFromCitizens *= 0.9f
|
unhappinessFromCitizens *= 0.9f
|
||||||
if (civInfo.policies.isAdopted("Aristocracy"))
|
if (civInfo.policies.isAdopted("Aristocracy"))
|
||||||
unhappinessFromCitizens *= 0.95f
|
unhappinessFromCitizens *= 0.95f
|
||||||
@ -163,6 +163,14 @@ class CityStats {
|
|||||||
return stats
|
return stats
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun getStatPercentBonusesFromWonders(): Stats {
|
||||||
|
val stats = Stats()
|
||||||
|
val civUniques = cityInfo.civInfo.buildingUniques
|
||||||
|
if (civUniques.contains("Culture in all cities increased by 25%")) stats.culture += 25f
|
||||||
|
return stats
|
||||||
|
}
|
||||||
|
|
||||||
private fun getStatPercentBonusesFromPolicies(policies: HashSet<String>, cityConstructions: CityConstructions): Stats {
|
private fun getStatPercentBonusesFromPolicies(policies: HashSet<String>, cityConstructions: CityConstructions): Stats {
|
||||||
val stats = Stats()
|
val stats = Stats()
|
||||||
|
|
||||||
@ -200,6 +208,8 @@ class CityStats {
|
|||||||
val statPercentBonuses = cityInfo.cityConstructions.getStatPercentBonuses()
|
val statPercentBonuses = cityInfo.cityConstructions.getStatPercentBonuses()
|
||||||
statPercentBonuses.add(getStatPercentBonusesFromGoldenAge(cityInfo.civInfo.goldenAges.isGoldenAge()))
|
statPercentBonuses.add(getStatPercentBonusesFromGoldenAge(cityInfo.civInfo.goldenAges.isGoldenAge()))
|
||||||
statPercentBonuses.add(getStatPercentBonusesFromPolicies(civInfo.policies.adoptedPolicies, cityInfo.cityConstructions))
|
statPercentBonuses.add(getStatPercentBonusesFromPolicies(civInfo.policies.adoptedPolicies, cityInfo.cityConstructions))
|
||||||
|
// from wonders - Culture in all cities increased by 25%
|
||||||
|
statPercentBonuses.add(getStatPercentBonusesFromWonders())
|
||||||
statPercentBonuses.add(getStatPercentBonusesFromRailroad())
|
statPercentBonuses.add(getStatPercentBonusesFromRailroad())
|
||||||
statPercentBonuses.add(getStatPercentBonusesFromMarble())
|
statPercentBonuses.add(getStatPercentBonusesFromMarble())
|
||||||
statPercentBonuses.add(getStatPercentBonusesFromComputers())
|
statPercentBonuses.add(getStatPercentBonusesFromComputers())
|
||||||
|
@ -56,7 +56,7 @@ class PopulationManager {
|
|||||||
// growth!
|
// growth!
|
||||||
{
|
{
|
||||||
foodStored -= getFoodToNextPopulation()
|
foodStored -= getFoodToNextPopulation()
|
||||||
if (cityInfo.buildingUniques.contains("FoodCarriesOver")) foodStored += (0.4f * getFoodToNextPopulation()).toInt() // Aqueduct special
|
if (cityInfo.buildingUniques.contains("40% of food is carried over after a new citizen is born")) foodStored += (0.4f * getFoodToNextPopulation()).toInt() // Aqueduct special
|
||||||
population++
|
population++
|
||||||
autoAssignPopulation()
|
autoAssignPopulation()
|
||||||
cityInfo.civInfo.addNotification(cityInfo.name + " has grown!", cityInfo.location)
|
cityInfo.civInfo.addNotification(cityInfo.name + " has grown!", cityInfo.location)
|
||||||
|
@ -91,7 +91,7 @@ class CivilizationInfo {
|
|||||||
happiness += getCivResources().keys
|
happiness += getCivResources().keys
|
||||||
.count { it.resourceType === ResourceType.Luxury } * happinessPerUniqueLuxury
|
.count { it.resourceType === ResourceType.Luxury } * happinessPerUniqueLuxury
|
||||||
happiness += cities.sumBy { it.cityStats.getCityHappiness().toInt() }
|
happiness += cities.sumBy { it.cityStats.getCityHappiness().toInt() }
|
||||||
if (buildingUniques.contains("HappinessPerSocialPolicy"))
|
if (buildingUniques.contains("Provides 1 happiness per social policy"))
|
||||||
happiness += policies.getAdoptedPolicies().count { !it.endsWith("Complete") }
|
happiness += policies.getAdoptedPolicies().count { !it.endsWith("Complete") }
|
||||||
return happiness
|
return happiness
|
||||||
}
|
}
|
||||||
@ -182,7 +182,7 @@ class CivilizationInfo {
|
|||||||
.flatMap { it.neighbors } // tiles adjacent to city tiles
|
.flatMap { it.neighbors } // tiles adjacent to city tiles
|
||||||
viewablePositions += gameInfo.tileMap.values
|
viewablePositions += gameInfo.tileMap.values
|
||||||
.filter { it.unit != null && it.unit!!.owner == civName }
|
.filter { it.unit != null && it.unit!!.owner == civName }
|
||||||
.flatMap { it.getViewableTiles(2)} // Tiles within 2 tiles of units
|
.flatMap { it.getViewableTiles(it.unit!!.getVisibilityRange())} // Tiles within 2 tiles of units
|
||||||
viewablePositions.map { it.position }.filterNot { exploredTiles.contains(it) }.toCollection(exploredTiles)
|
viewablePositions.map { it.position }.filterNot { exploredTiles.contains(it) }.toCollection(exploredTiles)
|
||||||
return viewablePositions
|
return viewablePositions
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ class GoldenAgeManager {
|
|||||||
|
|
||||||
fun enterGoldenAge() {
|
fun enterGoldenAge() {
|
||||||
var turnsToGoldenAge = 10.0
|
var turnsToGoldenAge = 10.0
|
||||||
if (civInfo.buildingUniques.contains("GoldenAgeLengthIncrease")) turnsToGoldenAge *= 1.5
|
if (civInfo.buildingUniques.contains("Golden Age length increases +50%")) turnsToGoldenAge *= 1.5
|
||||||
if (civInfo.policies.isAdopted("Freedom Complete")) turnsToGoldenAge *= 1.5
|
if (civInfo.policies.isAdopted("Freedom Complete")) turnsToGoldenAge *= 1.5
|
||||||
turnsLeftForCurrentGoldenAge += turnsToGoldenAge.toInt()
|
turnsLeftForCurrentGoldenAge += turnsToGoldenAge.toInt()
|
||||||
civInfo.addNotification("You have entered a golden age!", null)
|
civInfo.addNotification("You have entered a golden age!", null)
|
||||||
|
@ -26,7 +26,7 @@ class PolicyManager {
|
|||||||
var cityModifier = 0.3 * (civInfo.cities.size - 1)
|
var cityModifier = 0.3 * (civInfo.cities.size - 1)
|
||||||
if (isAdopted("Representation")) cityModifier *= (2 / 3f).toDouble()
|
if (isAdopted("Representation")) cityModifier *= (2 / 3f).toDouble()
|
||||||
if (isAdopted("Piety Complete")) baseCost *= 0.9
|
if (isAdopted("Piety Complete")) baseCost *= 0.9
|
||||||
if (civInfo.buildingUniques.contains("PolicyCostReduction")) baseCost *= 0.9
|
if (civInfo.buildingUniques.contains("Culture cost of adopting new Policies reduced by 10%")) baseCost *= 0.9
|
||||||
val cost: Int = Math.round(baseCost * (1 + cityModifier)).toInt()
|
val cost: Int = Math.round(baseCost * (1 + cityModifier)).toInt()
|
||||||
return cost - (cost % 5)
|
return cost - (cost % 5)
|
||||||
}
|
}
|
||||||
|
@ -124,4 +124,10 @@ class MapUnit {
|
|||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
return name +" - "+owner
|
return name +" - "+owner
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getVisibilityRange(): Int {
|
||||||
|
var visibilityRange = 2
|
||||||
|
if(hasUnique("Limited Visibility")) visibilityRange-=1
|
||||||
|
return visibilityRange
|
||||||
|
}
|
||||||
}
|
}
|
@ -111,7 +111,7 @@ class TileInfo {
|
|||||||
if (stats.production < 0) stats.production = 0f
|
if (stats.production < 0) stats.production = 0f
|
||||||
|
|
||||||
if ("Jungle" == terrainFeature && city != null
|
if ("Jungle" == terrainFeature && city != null
|
||||||
&& city.buildingUniques.contains("JunglesProvideScience"))
|
&& city.buildingUniques.contains("Jungles provide +2 science"))
|
||||||
stats.science += 2f
|
stats.science += 2f
|
||||||
if (stats.gold != 0f && observingCiv.goldenAges.isGoldenAge())
|
if (stats.gold != 0f && observingCiv.goldenAges.isGoldenAge())
|
||||||
stats.gold++
|
stats.gold++
|
||||||
|
@ -44,6 +44,12 @@ class Building : NamedStats(), IConstruction{
|
|||||||
|
|
||||||
fun getRequiredTech(): Technology = GameBasics.Technologies[requiredTech]!!
|
fun getRequiredTech(): Technology = GameBasics.Technologies[requiredTech]!!
|
||||||
|
|
||||||
|
fun getShortDescription(): String { // should fit in one line
|
||||||
|
var str = getStats(hashSetOf()).toString()
|
||||||
|
if(unique!=null) str += ", "+ unique!!
|
||||||
|
return str
|
||||||
|
}
|
||||||
|
|
||||||
fun getStats(adoptedPolicies: HashSet<String>): Stats {
|
fun getStats(adoptedPolicies: HashSet<String>): Stats {
|
||||||
val stats = this.clone()
|
val stats = this.clone()
|
||||||
if (adoptedPolicies.contains("Organized Religion") && hashSetOf("Monument", "Temple", "Monastery").contains(name))
|
if (adoptedPolicies.contains("Organized Religion") && hashSetOf("Monument", "Temple", "Monastery").contains(name))
|
||||||
@ -141,7 +147,7 @@ class Building : NamedStats(), IConstruction{
|
|||||||
if (requiredBuildingInAllCities != null && civInfo.cities.any { !it.cityConstructions.isBuilt(requiredBuildingInAllCities!!) })
|
if (requiredBuildingInAllCities != null && civInfo.cities.any { !it.cityConstructions.isBuilt(requiredBuildingInAllCities!!) })
|
||||||
return false
|
return false
|
||||||
if (cannotBeBuiltWith != null && construction.isBuilt(cannotBeBuiltWith!!)) return false
|
if (cannotBeBuiltWith != null && construction.isBuilt(cannotBeBuiltWith!!)) return false
|
||||||
if ("MustBeNextToDesert" == unique && !construction.cityInfo.getCenterTile().getTilesInDistance(1).any { it.baseTerrain == "Desert" })
|
if ("Must be next to desert" == unique && !construction.cityInfo.getCenterTile().getTilesInDistance(1).any { it.baseTerrain == "Desert" })
|
||||||
return false
|
return false
|
||||||
if (requiredResource != null && !civInfo.getCivResources().containsKey(GameBasics.TileResources[requiredResource!!]))
|
if (requiredResource != null && !civInfo.getCivResources().containsKey(GameBasics.TileResources[requiredResource!!]))
|
||||||
return false
|
return false
|
||||||
@ -158,8 +164,8 @@ class Building : NamedStats(), IConstruction{
|
|||||||
if (!containsResourceWithImprovement) return false
|
if (!containsResourceWithImprovement) return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("SpaceshipPart" == unique) {
|
if ("Spaceship part" == unique) {
|
||||||
if (!civInfo.buildingUniques.contains("ApolloProgram")) return false
|
if (!civInfo.buildingUniques.contains("Allows the building of spaceship parts")) return false
|
||||||
if (civInfo.scienceVictory.unconstructedParts()[name] == 0) return false // Don't need to build any more of these!
|
if (civInfo.scienceVictory.unconstructedParts()[name] == 0) return false // Don't need to build any more of these!
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
@ -168,7 +174,7 @@ class Building : NamedStats(), IConstruction{
|
|||||||
override fun postBuildEvent(construction: CityConstructions) {
|
override fun postBuildEvent(construction: CityConstructions) {
|
||||||
val civInfo = construction.cityInfo.civInfo
|
val civInfo = construction.cityInfo.civInfo
|
||||||
|
|
||||||
if (unique == "SpaceshipPart") {
|
if (unique == "Spaceship part") {
|
||||||
civInfo.scienceVictory.currentParts.add(name, 1)
|
civInfo.scienceVictory.currentParts.add(name, 1)
|
||||||
UnCivGame.Current.screen = VictoryScreen()
|
UnCivGame.Current.screen = VictoryScreen()
|
||||||
return
|
return
|
||||||
@ -178,16 +184,16 @@ class Building : NamedStats(), IConstruction{
|
|||||||
if (providesFreeBuilding != null && !construction.builtBuildings.contains(providesFreeBuilding!!))
|
if (providesFreeBuilding != null && !construction.builtBuildings.contains(providesFreeBuilding!!))
|
||||||
construction.builtBuildings.add(providesFreeBuilding!!)
|
construction.builtBuildings.add(providesFreeBuilding!!)
|
||||||
when (unique) {
|
when (unique) {
|
||||||
"ApolloProgram" ->
|
"Enables construction of Spaceship parts" ->
|
||||||
if(construction.cityInfo.civInfo.isPlayerCivilization())
|
if(construction.cityInfo.civInfo.isPlayerCivilization())
|
||||||
UnCivGame.Current.screen = VictoryScreen()
|
UnCivGame.Current.screen = VictoryScreen()
|
||||||
"EmpireEntersGoldenAge" -> civInfo.goldenAges.enterGoldenAge()
|
"Empire enters golden age" -> civInfo.goldenAges.enterGoldenAge()
|
||||||
"FreeGreatArtistAppears" -> civInfo.addGreatPerson("Great Artist")
|
"Free Great Artist Appears" -> civInfo.addGreatPerson("Great Artist")
|
||||||
"WorkerConstruction" -> {
|
"Worker construction increased 25%, provides 2 free workers" -> {
|
||||||
civInfo.placeUnitNearTile(construction.cityInfo.location, "Worker")
|
civInfo.placeUnitNearTile(construction.cityInfo.location, "Worker")
|
||||||
civInfo.placeUnitNearTile(construction.cityInfo.location, "Worker")
|
civInfo.placeUnitNearTile(construction.cityInfo.location, "Worker")
|
||||||
}
|
}
|
||||||
"FreeSocialPolicy" -> {
|
"Free Social Policy" -> {
|
||||||
civInfo.policies.freePolicies++
|
civInfo.policies.freePolicies++
|
||||||
if(construction.cityInfo.civInfo.isPlayerCivilization())
|
if(construction.cityInfo.civInfo.isPlayerCivilization())
|
||||||
UnCivGame.Current.screen = PolicyPickerScreen(civInfo)
|
UnCivGame.Current.screen = PolicyPickerScreen(civInfo)
|
||||||
|
@ -1,14 +1,47 @@
|
|||||||
package com.unciv.models.gamebasics
|
package com.unciv.models.gamebasics
|
||||||
|
|
||||||
import java.util.HashSet
|
import java.util.*
|
||||||
|
|
||||||
class Technology {
|
class Technology : ICivilopedia {
|
||||||
|
override val description: String
|
||||||
|
get(){
|
||||||
|
val SB=StringBuilder()
|
||||||
|
if(baseDescription!=null) SB.appendln(baseDescription)
|
||||||
|
|
||||||
|
val enabledUnits = GameBasics.Units.values.filter { it.requiredTech==name }
|
||||||
|
if(enabledUnits.isNotEmpty()) SB.appendln("Units enabled: "+enabledUnits.map { it.name }.joinToString())
|
||||||
|
|
||||||
|
val enabledBuildings = GameBasics.Buildings.values.filter { it.requiredTech==name }
|
||||||
|
val regularBuildings = enabledBuildings.filter { !it.isWonder }
|
||||||
|
if(regularBuildings.isNotEmpty())
|
||||||
|
SB.appendln("Buildings enabled: "+regularBuildings.map { it.name + " ("+it.getShortDescription()+")" }.joinToString())
|
||||||
|
val wonders = enabledBuildings.filter { it.isWonder }
|
||||||
|
if(wonders.isNotEmpty()) SB.appendln("Wonders enabled: "+wonders.map { it.name }.joinToString())
|
||||||
|
|
||||||
|
val revealedResource = GameBasics.TileResources.values.filter { it.revealedBy==name }.firstOrNull() // can only be one
|
||||||
|
if(revealedResource!=null) SB.appendln("Reveals $revealedResource on map")
|
||||||
|
|
||||||
|
val tileImprovements = GameBasics.TileImprovements.values.filter { it.techRequired==name }
|
||||||
|
if(tileImprovements.isNotEmpty()) SB.appendln("Tile improvements enabled: "+tileImprovements.map { it.name }.joinToString())
|
||||||
|
|
||||||
|
val improvedImprovements = GameBasics.TileImprovements.values.filter { it.improvingTech==name }.groupBy { it.improvingTechStats.toString()!! }
|
||||||
|
improvedImprovements.forEach{
|
||||||
|
val impimpString = it.value.joinToString { it.name } +" provide" + (if(it.value.size==1) "s" else "") +" "+it.key
|
||||||
|
SB.appendln(impimpString)
|
||||||
|
}
|
||||||
|
|
||||||
|
return SB.toString().trim()
|
||||||
|
}
|
||||||
lateinit var name: String
|
lateinit var name: String
|
||||||
|
|
||||||
var description: String? = null
|
var baseDescription: String? = null
|
||||||
var cost: Int = 0
|
var cost: Int = 0
|
||||||
@JvmField var prerequisites = HashSet<String>()
|
var prerequisites = HashSet<String>()
|
||||||
|
|
||||||
@JvmField var column: TechColumn? = null // The column that this tech is in the tech tree
|
var column: TechColumn? = null // The column that this tech is in the tech tree
|
||||||
@JvmField var row: Int = 0
|
var row: Int = 0
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return name
|
||||||
|
}
|
||||||
}
|
}
|
@ -16,7 +16,7 @@ class TileImprovement : NamedStats(), ICivilopedia {
|
|||||||
private val turnsToBuild: Int = 0 // This is the base cost.
|
private val turnsToBuild: Int = 0 // This is the base cost.
|
||||||
fun getTurnsToBuild(civInfo: CivilizationInfo): Int {
|
fun getTurnsToBuild(civInfo: CivilizationInfo): Int {
|
||||||
var realTurnsToBuild = turnsToBuild.toFloat()
|
var realTurnsToBuild = turnsToBuild.toFloat()
|
||||||
if (civInfo.buildingUniques.contains("WorkerConstruction"))
|
if (civInfo.buildingUniques.contains("Worker construction increased 25%, provides 2 free workers"))
|
||||||
realTurnsToBuild *= 0.75f
|
realTurnsToBuild *= 0.75f
|
||||||
if (civInfo.policies.isAdopted("Citizenship"))
|
if (civInfo.policies.isAdopted("Citizenship"))
|
||||||
realTurnsToBuild *= 0.75f
|
realTurnsToBuild *= 0.75f
|
||||||
|
@ -39,6 +39,7 @@ class CivilopediaScreen : CameraStageBaseScreen() {
|
|||||||
map["Terrains"] = GameBasics.Terrains.values
|
map["Terrains"] = GameBasics.Terrains.values
|
||||||
map["Tile Improvements"] = GameBasics.TileImprovements.values
|
map["Tile Improvements"] = GameBasics.TileImprovements.values
|
||||||
map["Units"] = GameBasics.Units.values
|
map["Units"] = GameBasics.Units.values
|
||||||
|
map["Technologies"] = GameBasics.Technologies.values
|
||||||
|
|
||||||
val nameList = List<ICivilopedia>(CameraStageBaseScreen.skin)
|
val nameList = List<ICivilopedia>(CameraStageBaseScreen.skin)
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ class VictoryScreen : PickerScreen() {
|
|||||||
fun scienceVictoryColumn():Table{
|
fun scienceVictoryColumn():Table{
|
||||||
val t = Table()
|
val t = Table()
|
||||||
t.defaults().pad(5f)
|
t.defaults().pad(5f)
|
||||||
t.add(getMilestone("Built Apollo Program",civInfo.buildingUniques.contains("ApolloProgram"))).row()
|
t.add(getMilestone("Built Apollo Program",civInfo.buildingUniques.contains("Allows the building of spaceship parts"))).row()
|
||||||
|
|
||||||
val scienceVictory = civInfo.scienceVictory
|
val scienceVictory = civInfo.scienceVictory
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user