Commit graph

310 commits

Author SHA1 Message Date
Yair Morgenstern
e99bf8004f Appropriate notifications when wonders are built in a city you haven't yet seen 2018-05-17 15:14:50 +03:00
Yair Morgenstern
e1018371b3 Major update - enemies can now take over cities (and do!) 2018-05-17 12:24:33 +03:00
Yair Morgenstern
64f8b3fef8 Cities beyond the 15th get "New" names properly 2018-05-17 10:44:27 +03:00
Yair Morgenstern
e267a7a6be Civs no longer spam settlers beyond what they can afford 2018-05-17 10:43:45 +03:00
Yair Morgenstern
d3799a0c64 When settlers have no viable spots within 5 tiles, they random walk to edges of walking ability 2018-05-16 23:45:25 +03:00
Yair Morgenstern
75b6a59ef4 Cities will be called "New $name" if all city names are exhausted 2018-05-16 23:37:56 +03:00
Yair Morgenstern
a1995a3e37 Fixed bugs that prevented picking Gold and Science as city constructions 2018-05-16 23:31:17 +03:00
Yair Morgenstern
9c576d6bdc Added CenterX and CenterY functions for actors 2018-05-16 21:38:09 +03:00
Yair Morgenstern
2c2a4e5da3 The tiles the unit can move to are now displayed when selecting a unit,
The hex borders have been changed to points
Thanks to Mihail Pastuhov for the ideas!
2018-05-15 23:39:04 +03:00
Yair Morgenstern
030ddafce6 Bugfixes 2018-05-14 22:45:41 +03:00
Yair Morgenstern
41f37f5ee7 Units in the middle of a preordered action (automate, move) don't do it if there's an enemy withing walking distance 2018-05-11 16:26:09 +03:00
Yair Morgenstern
18ec3eba9c Workers now don't move if there's an enemy unit in the vicinity 2018-05-11 16:22:25 +03:00
Yair Morgenstern
a3730a348e Turn start/end now work in the correct order - no longer will your units move and immediately be attacked before you can see the attacker! 2018-05-11 16:21:27 +03:00
Yair Morgenstern
a4fcc3a694 Happiness label in menu bar now displays unhappy face and red text if hapiness is negative 2018-05-11 16:19:40 +03:00
Yair Morgenstern
3cd21c4b8e Settler search optimization 2018-05-11 10:50:08 +03:00
Yair Morgenstern
a0f5e190fc Fixed a bug where if enemy civ constructed the Oracle, you would get a popup screen to choose a free policy which wouldn't go away 2018-05-11 10:41:13 +03:00
Yair Morgenstern
ec760e660f Fixed crash when settler didn't find a good city spot within 5 tiles 2018-05-11 10:39:54 +03:00
Yair Morgenstern
96a0961130 UI revamp to the top bar 2018-05-11 02:45:50 +03:00
Yair Morgenstern
4c4abb452c Fixed idiotic bug that caused the game to crash =( 2018-05-10 11:01:55 +03:00
Yair Morgenstern
d12b665e83 Added extra cities for civilizations (because I actually reached 10+ cities for an AI)
City naming is now dependant on the names of existing cities and not on the umber of cities the civ currently has
2018-05-09 22:59:32 +03:00
Yair Morgenstern
4cfbf18178 Organized unit algorithms
Combat units now head towards the closest city with no garrison if exists
2018-05-09 21:31:34 +03:00
Yair Morgenstern
afa6478745 Horsemen can now move after attacking 2018-05-09 18:57:03 +03:00
Yair Morgenstern
9625a12ba2 Damage calculations are now according to extrapolated Civ V rules 2018-05-09 18:24:30 +03:00
Yair Morgenstern
a230676325 Added Civ strategic resources to top of screen 2018-05-09 18:17:18 +03:00
Yair Morgenstern
c3a51460b7 More unit information and combat mechanics fixes 2018-05-08 11:56:51 +03:00
Yair Morgenstern
2d302ea2da Added Horseman, Catapult and Spearman, with all that entails 2018-05-08 10:58:26 +03:00
Yair Morgenstern
16ae62a29b Can't choose to build unbuildable units =) 2018-05-07 23:56:10 +03:00
Yair Morgenstern
602532b721 Fixed bug where game would crash if you ordered a unit to go womewhere that it can't reach (now it just ignores you entirely) 2018-05-07 23:48:25 +03:00
Yair Morgenstern
8b748384af Added chariot archer - includes adding requiredTech, requiredResource, and uniques to units 2018-05-07 23:42:58 +03:00
Yair Morgenstern
8350d000b1 Added units to civilopedia
Added more info to civilopedia
2018-05-07 12:33:49 +03:00
Yair Morgenstern
3eaf1afef4 Victory screen now contains Conquest victory 2018-05-06 18:15:44 +03:00
Yair Morgenstern
be5cd0c334 Can now properly pick great person (when relevant. e.g after finishing Liberty
Victory conditions screen now includes cultural victory
2018-05-06 18:03:49 +03:00
Yair Morgenstern
4e699f917e Organized automation classes 2018-05-06 11:48:01 +03:00
Yair Morgenstern
5d4003ecbf Fixed bug where cities would not "recognize" tiles on the first turn - for realz this time 2018-05-06 11:24:39 +03:00
Yair Morgenstern
c6e344b16e Remove worked tiles when population starves (dead men work no tiles) 2018-05-06 11:20:02 +03:00
Yair Morgenstern
fd5aaaeee1 Now shows which tile the city will next expand to 2018-05-06 11:08:00 +03:00
Yair Morgenstern
75f4301004 Fixed bug where cities would not "recognize" tiles on the first turn 2018-05-06 10:52:29 +03:00
Yair Morgenstern
f0cf29e6b9 Worker findTileToWork is now more readable 2018-05-06 10:41:31 +03:00
Yair Morgenstern
c932fffc32 Enemy civs now adopt policies when they can 2018-05-06 10:38:45 +03:00
Yair Morgenstern
1a6e4d30f8 Can now see the units from within the city screen 2018-05-06 09:30:20 +03:00
Yair Morgenstern
fc7b6529f0 Added game saves - you can now save and load the game! 2018-05-06 08:55:20 +03:00
Yair Morgenstern
8450d2cf60 Tile feature imag no longer (paritially) covers population image in cities 2018-05-02 08:44:33 +03:00
Yair Morgenstern
af8b307782 When capturing a city, the expansion of that city is reset.
This leaves a situation where previously worked tiles are outside of the new borders, and so the population that was working there needs to be reassigned.
2018-05-02 08:39:27 +03:00
Yair Morgenstern
cb381ec82e Better performace by changing ExploredTiles to a hashset and ading a temporary TilesToCities hashmap 2018-05-02 08:33:54 +03:00
Yair Morgenstern
6cd78ca926 Minor performance enhancements for unit movement 2018-05-01 21:42:13 +03:00
Yair Morgenstern
fb1f381f06 Added FreeType, which lets us use whatever fonts we want 2018-05-01 21:41:02 +03:00
yairm210
eac8afef75
Sped up FindShortestPath alg
When finding shortest path, we no longer check intermediary tiles for the next step, since they will always have a longer path than the edge tiles (since from there, we need to pass through an edge tile anyway)
2018-04-29 13:31:10 +03:00
Yair Morgenstern
8d2edfefc7 Civilopedia help now shows correct text
Sped up pollicy-related actions
2018-04-27 15:24:31 +03:00
Yair Morgenstern
8268c0c561 Fixed settler automation performance problem - now actually viable for phone use
All kinds of other small performance-boosting bits and bobs
2018-04-26 23:43:36 +03:00
Yair Morgenstern
f4af9f7d80 Fixed (slow) performance issues in TechPickerScreen 2018-04-26 23:06:45 +03:00
Yair Morgenstern
ace5a6efbf Worker automation fixed - ready for big update! 2018-04-26 21:29:20 +03:00
Yair Morgenstern
4d10e11482 Added Egypt, other civs can now build wonders! 2018-04-25 23:47:03 +03:00
Yair Morgenstern
23bd52fc66 Changed all usages of GetTilesInDisttance to center around TileInfo, not TileMap 2018-04-25 22:59:44 +03:00
Yair Morgenstern
6fcf9ec93e Fixed bug where if 2 tiles were of same "ranking", the worker would try and switch back and forth between them. 2018-04-25 22:19:35 +03:00
Yair Morgenstern
9816cd57da Added "explored tiles" to civinfo, moved worker automation to separate class 2018-04-25 22:09:24 +03:00
Yair Morgenstern
9d7399dd48 Enemy civs now pick technologies and advance!
Fixed bug where workers would try to move and improve unreachable tiles, crashing the game
2018-04-24 23:00:58 +03:00
Yair Morgenstern
c6136acbec Moved tile ranking and construction picking to Automation 2018-04-24 21:44:47 +03:00
Yair Morgenstern
5eec4deb84 Fixed bug where melee attacker would always move to attack, even if attackee was right next to it 2018-04-24 21:42:53 +03:00
Yair Morgenstern
fe09351db7 Ranged enemy units don't move towards their targets
Cities under attack now switch to training combat units
2018-04-23 18:58:19 +03:00
Yair Morgenstern
7ff81ac901 When a unit takes over a city, it now gets moved to that city 2018-04-21 23:00:23 +03:00
Yair Morgenstern
453e25ffe7 City's tiles and worked tiles are now saved in the CityInfo and not in the TileInfo 2018-04-21 22:56:52 +03:00
Yair Morgenstern
17307f16f9 Can now conquer cities! =D 2018-04-20 11:33:56 +03:00
Yair Morgenstern
7e2015572c No longer displays population images for enemy cities 2018-04-18 15:34:41 +03:00
Yair Morgenstern
42ed4e5749 No longer displays red circle in attackable tiles (from range) but not viewed - gave away enemy positions! 2018-04-18 15:33:53 +03:00
Yair Morgenstern
d0f3a10728 Moved notifications to CivInfo, notifications on enemy actions removed 2018-04-18 00:00:31 +03:00
Yair Morgenstern
51148ac347 Can no longer pick branch completion policies 2018-04-17 23:59:34 +03:00
Yair Morgenstern
bfe43b67c1 Added Settler and Worker enemy actions 2018-04-17 23:58:10 +03:00
Yair Morgenstern
c6ebb733a1 Added Greece to civilizations, city names no come from the Civilizations json 2018-04-17 23:57:06 +03:00
Yair Morgenstern
221a8668fa Selected unit now has a white circle around it 2018-04-17 21:56:58 +03:00
Yair Morgenstern
05d61e4982 Fixed bug where when exploring new tiles, map would not show them until something else happened (map click, etc.) 2018-04-14 23:10:24 +03:00
Yair Morgenstern
532dc75c34 Fixed bug where game would crash if the currently selected unit was destroyed 2018-04-12 21:58:38 +03:00
Yair Morgenstern
34c1047b65 Fixed bug where enemy units were viewable despite the tile being unexplored 2018-04-12 21:52:00 +03:00
Yair Morgenstern
e9c69eed6f Attackable units now have red circle marking their location 2018-04-12 21:43:52 +03:00
Yair Morgenstern
ca7fb9c3be Multiple IDE-suggested fixes 2018-04-11 23:46:00 +03:00
Yair Morgenstern
52b2fa1ef5 Explored but unvisible tiles now fade to black, instead of to background olor (which is blueish) 2018-04-11 22:35:09 +03:00
Yair Morgenstern
dd3d4b605f Added archer 2018-04-11 22:34:20 +03:00
Yair Morgenstern
32efae340b Unit table now displays ranged strength for ranged units 2018-04-09 19:09:08 +03:00
Yair Morgenstern
2bac292ce6 When displaying tiles that unit can move to, we now mark those tiles with a blue circle rather than "gray out" all other tiles - gives a much better visual cue 2018-04-09 16:40:22 +03:00
Yair Morgenstern
8798f02217 Select next idle is no longer enables if an ENEMY unit is idle 2018-04-09 12:54:33 +03:00
Yair Morgenstern
90baebc63d Throw exception when attempting to move a unit to a tile that already contains one 2018-04-09 11:08:20 +03:00
Yair Morgenstern
af47880f48 Don't random-walk to tiles that have units in them! 2018-04-09 11:04:13 +03:00
Yair Morgenstern
b59e235df5 Ranged attacks can reach attackee if tile is in range 2018-04-09 11:03:55 +03:00
Yair Morgenstern
3045fe040d Only display unit on tile if tile is visible 2018-04-09 11:03:25 +03:00
Yair Morgenstern
abaf39a15c Ranged units don't get damaged when attacking 2018-04-09 11:02:53 +03:00
Yair Morgenstern
4de9ee106f City button padding expanded, warrior now has 2 strength as it should 2018-04-08 16:13:54 +03:00
Yair Morgenstern
9978ec5264 Added 15% flanking bonus when enemy is surrounded by more than one melee unit 2018-04-08 10:02:52 +03:00
Yair Morgenstern
e476e5862d TileTable no longer displays health of civilian units 2018-04-08 10:00:24 +03:00
Yair Morgenstern
d8a5acb6f2 Battletable only displays combat if the enemy unit is viewable or if the enemy ciity's tile has been explored 2018-04-08 08:58:42 +03:00
Yair Morgenstern
a72c1c7d95 Select next idle unit only selects units belonging to the player 2018-04-08 08:55:53 +03:00
Yair Morgenstern
3ca20951e5 Stats string does not display decimal points 2018-04-08 08:55:06 +03:00
Yair Morgenstern
f662cd910d Added a table in city screen, to show a breakdown of the ciy stats 2018-04-05 13:59:22 +03:00
Yair Morgenstern
39cc236fae City labels are colored according to civ, and scale down when zooming in 2018-04-05 12:47:10 +03:00
Yair Morgenstern
8b176f062b Added unit maintainance costs to civ 2018-04-05 11:53:12 +03:00
Yair Morgenstern
e5e0c5daa5 Now displays defender name properly, and not attacker name 2018-04-05 11:19:31 +03:00
Yair Morgenstern
461bea0cbc Healing units now attempt to go to better tiles to heal there
Fixed bug where units moving from A to B would move multiple times between turns, effectively "jumping" distances
2018-04-05 11:04:40 +03:00
Yair Morgenstern
c56a67211c Now can't see units that we're not supposed to see =) 2018-04-04 23:17:27 +03:00
Yair Morgenstern
7ff9f17943 Added battle modifiers, specifically - terrain defence bonuses 2018-04-04 23:10:16 +03:00
Yair Morgenstern
4e36aa0d5a No longer attempts to attack city that contains a unit
Battle visualization bug fixed
2018-04-04 17:37:59 +03:00
Yair Morgenstern
36c2afd026 Enemy units don't advance towards units they can't see (not viewable to civ) 2018-04-04 17:16:28 +03:00
Yair Morgenstern
541c73a9a5 Organized city and unit combat, now barbarian warriors spawn in the beginning and so you have to protect your workers or whatever 2018-04-04 17:13:01 +03:00
Yair Morgenstern
889072c725 Enemy troops now have movement and will attack 2018-04-02 23:14:42 +03:00
Yair Morgenstern
5d00adb7fe Added GetTile function to MapUnit, which simplifies and normalizes a lot of the unit logic
Battle simulation and actual battle work as expected!
2018-04-02 15:16:28 +03:00
Yair Morgenstern
bd1a191b15 Battle tabl now shows results of battle, added Barbarian civ 2018-04-01 15:01:48 +03:00
Yair Morgenstern
f71c605210 Notifications scroll no longer blocks map scrolling 2018-03-23 12:25:51 +03:00
Yair Morgenstern
4e7d1bfaec Non-idle units are faded out, to show they can't move this turn 2018-03-23 11:01:23 +03:00
Yair Morgenstern
96c217fec8 Added unit icons with the background according to owner 2018-03-22 23:45:28 +02:00
Yair Morgenstern
a8051bc930 Moved CityButton from TileGroup to WorldTileGroup 2018-03-21 22:03:37 +02:00
Yair Morgenstern
3959706ab9 Changed placement of notifications and unit commands in world screen for an unobstructed central view 2018-03-21 21:10:28 +02:00
Yair Morgenstern
c8c1ecc4da Old borders now disappear when borders expand 2018-03-21 19:07:05 +02:00
Yair Morgenstern
e496148e21 Tiles are now larger, population and units placed in a more visually pleasing way 2018-03-19 23:30:54 +02:00
Yair Morgenstern
66f900e4ec Changed terrain visualization - is now plain color awith overlays for terrain feature, looks really good! 2018-03-16 13:09:43 +02:00
Yair Morgenstern
eadf7b01db Added enable/disable functions to textbuttons, can now stop moving and automated units even when out of movement 2018-03-13 22:07:06 +02:00
Yair Morgenstern
53e332e9e8 Tutorials moved to a separate json file 2018-03-12 23:33:03 +02:00
Yair Morgenstern
b659e3b37d All GameBasics are now LinkedHashLists, and so retain order as in the json files 2018-03-12 18:35:57 +02:00
Yair Morgenstern
f59102a2a0 Policy pick and free tech pick moved to when clicking on next turn button 2018-03-11 23:25:57 +02:00
Yair Morgenstern
5db5272810 When generating map, we no longer get terrain areas that have only 1 or 2 tiles 2018-03-10 22:15:42 +02:00
Yair Morgenstern
c4736f0467 Map generation now generates areas coontaining the same terrain, rather than have each tile be a random terrain - much closerr to what you get in the real Civ game, even though we're pretty far from there 2018-03-10 22:01:10 +02:00
Yair Morgenstern
414025dbbe Fixed crash when starting new game 2018-03-07 22:35:41 +02:00
Yair Morgenstern
7f8e1707be Entiirely removed Linq - now only using Kotlin extensions! 2018-03-07 21:51:33 +02:00
Yair Morgenstern
1a4a9d416c Unit control transferred to UnitTable 2018-03-07 18:37:16 +02:00
Yair Morgenstern
146c4111fd tile groups moved to tile map holder, as they should be 2018-03-03 23:38:28 +02:00
Yair Morgenstern
064aee2f07 Split unit actions to a separate file (unitactions), because of all the separate cases 2018-03-03 23:30:27 +02:00
Yair Morgenstern
f2c790aec4 Finisher policies are now unpickable 2018-03-03 22:22:00 +02:00
Yair Morgenstern
abe3d76df7 Changed click listeners to lambdas 2018-03-03 21:54:02 +02:00
Yair Morgenstern
9b29944c2b All coe converted to Kotlin! 2018-03-02 15:34:24 +02:00
Yair Morgenstern
113f3965fc Converted all logic/map files to Kotlin 2018-02-25 00:07:40 +02:00
Yair Morgenstern
18be9e37b2 Converted all GameBasics to Kotlin 2018-02-24 22:43:41 +02:00
Yair Morgenstern
49c0707be1 First Kotlin change - FullStats and CivStats 2018-02-24 20:18:08 +02:00
Yair Morgenstern
9253c40085 Added Kotlin! 2018-02-23 15:36:13 +02:00
Yair Morgenstern
397556f81f Deleted unneccesary files, minor changes that were pointed out by code inspection 2018-02-23 13:31:45 +02:00
Yair Morgenstern
6a2f4a07f1 Major overhaul - all tree items now have transient pointers to their parents, eliiminating the need for static calls for Civilization.Current and the like - neccesary if we want to have multiple civilizations 2018-02-23 12:57:52 +02:00
Yair Morgenstern
4d6b5c997d Split generating the map to a separate class
Fixed bug loading game when multiple cities
2018-02-05 23:19:58 +02:00
Yair Morgenstern
1c1756721a - Slightly improved tile ranking when determining next tile
- Now does not display unexplored tiles in city screen - cleaner view
2018-02-03 22:06:55 +02:00
Yair Morgenstern
ce7a7916c1 - Fixed bug when picking legalism with less than 4 cities
- Added City Center indication, made population image in city screen more prominent and clickable
2018-02-03 21:49:46 +02:00
Yair Morgenstern
7cbddd883b Split WorldScreen functionality into components - civ stats table, tile info table, tile map holder, notificaations scroll, idle unit button
Added yield on tiles
2018-01-31 22:45:21 +02:00
Yair Morgenstern
561fd417ed policy picker screen now opens rom boolean 2018-01-23 21:52:25 +02:00
Yair Morgenstern
b6d235a4d0 Automated actions should now choose best and closest tile to work on, differentiated pre- and post- turn actions 2018-01-22 22:57:17 +02:00
Yair Morgenstern
dd6805d179 City stats now update when adopting policy 2018-01-20 23:23:30 +02:00
Yair Morgenstern
80e3d16895 Load game does not crash when there are notifications
Automated workers no longer complete improvements in a single turn
City screen does not display building catagories which are irrelevant
2018-01-19 13:20:42 +02:00
Yair Morgenstern
d8a7c379e7 Moved more functions to their proper places 2018-01-13 23:21:20 +02:00
Yair Morgenstern
a992dff6fe Split CityInfo into areas of concern - separate files for Stats, Expansion and Population 2018-01-13 23:11:53 +02:00
Yair Morgenstern
3bb849726a Split CivInfo's responsibility into separate classes: Tech,Policy,GoldenAge,GreatPerson and ScienceVictory managers. 2018-01-12 12:37:31 +02:00
Yair Morgenstern
85ffcc58ee Added CivilizationPolicies, added great person pick when completing Liberty 2018-01-11 22:50:59 +02:00
Yair Morgenstern
546472b528 Organized classes into folders 2018-01-11 22:22:51 +02:00
Yair Morgenstern
63f24db67b Implemented line-of-sight according to terrain 2018-01-11 20:51:19 +02:00
Yair Morgenstern
45111d89e0 Notifications when strategic resources are revealed 2018-01-11 20:49:43 +02:00
Yair Morgenstern
5b28840940 Notifications now contain location, and are clickable when appropriate 2018-01-08 22:42:09 +02:00
Yair Morgenstern
6c035c79b6 Improved visuals of science victory screen
Added Scout to game start
Added tutorials
2018-01-08 18:52:30 +02:00
Yair Morgenstern
439efd7a40 Legalism now works! 2018-01-03 22:52:40 +02:00
Yair Morgenstern
9dad8908d6 Added basic tutorials 2018-01-03 22:36:56 +02:00