Unciv/docs/Credits.md
Arthur van der Staaij a7afc0718c
Unit swapping (#4049)
* Added an icon for unit swapping

* Implemented unit swapping

In the original Civ V, unit swapping is a supported mechanic.
If you try to move a unit to a tile with another of your units, and both
units have enough movement points left to reach the other's tile, they
will swap places. They will consume only the movement points needed to
reach the other's tile in this way.

This change implements unit swapping for Unciv.

To prevent all kinds of problems from arising with automatic unit
movement, unit swapping can only be done explicitly. This also means
that it can only be done if the unit-swap movement is possible in a
single turn. It is however not limited to adjacent units.

Because Unciv supports mobile devices, there is in general no separation
between a unit-selection click and a movement click. Clicking on another
unit while a unit is selected simply selects that other unit. Because we
do not want to make it more difficult to select other units in this way,
unit swapping is implemented as a separate "movement mode": to toggle
this mode on or off, the new unit action "Swap units" must be used.
Newly selected units still always start in the normal movement mode.

In the unit-swap movement mode, the possible swap tiles are highlighted
instead of the possible movement and attack tiles. Clicking on a
highlighted tile will display a swap button, similar to the movement
button, or instantly perform the swap if single-click-movement is
enabled. This new behavior overrides the selection of the unit on the
target tile: if the user wants to select the unit instead, they have to
exit the unit-swapping mode first.

The swapping code is robust, it can even handle swaps that involve a
paradrop!

An option to always swap-move when an eligible tile is clicked instead
of requiring the unit-swapping mode, similar to the existing
single-click-movement option, could perhaps be added in later.

* Added some comments to existing movement functions

* Fixed a silly mistake

Fixed a silly mistake which caused the unit-swapping eligibility
detection to sometimes remove units from the world.

* Removed some unneeded code

* Fixed movement buttons not showing with world wrap

Fixed a bug where the "move here" and "swap with" buttons would only
show on the leftmost copy of the world when world wrap was enabled.

* Made the swap action only display if usable

Made the unit swapping button only display if there is at least one
possible swap movement.
2021-06-06 22:56:25 +03:00

43 KiB

Icon Credits

Flag Icons made by Freepik from www.flaticon.com and licensed by Creative Commons 3.0

New Unciv logo made by u-ndefined on Discord

Base tile icons for the "Fantasy Hex" tileset belong to CuddlyClover @ https://cuddlyclover.itch.io/fantasy-hex-tiles with a few additions by me

Trees for the jungle tiles in the "Fantasy Hex" are extracted from Desert Strike for the Amiga

Almost all the improvements and units made by The Bucketeer on Discord

Tile icons for the "ThorfMaps tileset belong to Thorfinn Tait and are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Based on work at www.thorfmaps.com.

Unless otherwise specified, all the following are from the Noun Project licenced under either Creative Commons or Public Domain

Units

Ancient Era

Classical Era

Medieval Era

  • Ship By Vanisha for Galleass
  • Crossbow By Creaticca Creative Agency for Crossbowman
  • Longbow By Hamish for Longbowman
  • Trebuchet By Ben Davis
  • Sword By uzeir syarief for Longswordsman
  • Samurai By Chanut is Industries
  • Spear By Alvaro Cabrera for Pikeman
  • Halberd parkjisun for Landsknecht
  • Knight By Tyler Glaude

Renaissance Era

Industrial

  • Rifle By Chameleon Design for Rifleman
  • Horse By Bakunetso Kaito for Cavalry
  • horse racing By Sergio Morozov for Cossack
  • Artillery By Creative Mania
  • Ship By Aisyah for Ironclad

Modern

Great People

  • Pallet By James Keuning for Great Artist
  • Gear By Melvin Salas for Great Engineer
  • Beaker By Delwar Hossain for Great Scientist
  • General By anbileru adaleru for Great General

Resources

Improvements

  • Woodcutting axe By Chanut is Industries for Lumber Mill
  • Monument By Setyo Ari Wibowo for Landmark
  • Farm By Bonnie Beach
  • Unhappy By Daryl Vandermont (doesn't belong here)
  • Bank By Scott Dunlap for Customs House
  • Academy By CJS
  • Factory By RULI for Manufactory
  • Mine By Edward Boatman
  • Corral By Luis Prado for Pasture
  • Plants By hendra sudibyo for Plantation
  • Pickaxe By Creative Stall for Quarry
  • Food stall By I Putu Kharismayadi for Trading post
  • Road By REVA
  • Ruins By Creative Stall for Ancient runs
  • Ruins By Paulo Volkova for City ruins
  • Fishing Net By Made for Fishing Boats
  • Moai By Template
  • Fort By Adrien Coquet
  • Citadel By Adrien Coquet
  • Village by Andrey Vasiliev

Buildings

Ancient Era

Classical Era

Medieval Era

Renaissance Era

Industrial Era

Modern Era

Information Era

Future Era

Social Policies

Tradition

  • coat of arms By Martina Krasnayova for Oligarchy
  • Apple By EnQiu for Landed Elite
  • Crown By Alexander Skowalsky for Monarchy
  • Pyramid By Creative Stall for Aristocracy
  • Gavel By Rflor for Legalism

Liberty

  • People By Elizabeth Lopez for Citizenship
  • Assembly By Noël Rasendrason for Republic
  • People By Gregor Cresnar for Meritocracy
  • People By Wilson Joseph for Representation
  • Torch By Hea Poh Lin for Collective Rule

Honor

  • Sword By dsathiyaraj for Military Tradition
  • Castle By Gabriele Malaspina for Military Caste
  • Roman Armor By Parkjisun for Professional Army
  • Shield By Kimmi Studio for Discipline
  • Spartan Helmet By Joni Ramadhan for Warrior Code

Piety

  • Protestantism By Evgeni Moryakov for Reformation
  • Temple By N.K.Narasimhan for Theocracy
  • Religion By Ben Avery for Free Religion
  • Flame By Ian Shoobridge for Mandate Of Heaven

Commerce

  • Trade By Gregor Cresnar for Trade Unions
  • Pie Chart By Adrien Coquet for Protectionism
  • Coins By icon 54 for Mercantilism
  • Painting By Mike Rowe for Patronage
  • Gem By Oksana Latysheva for Entrepreneurship

Rationalism

  • Science By Three Six Five for Scientific Revolution
  • Graph By Ben Davis for Secularism
  • Logic By Jenya K for Sovereignty
  • Dialogue By ProSymbols for Free Thought
  • Logic By Arthur Shlain for Humanism

Freedom

Autocracy

Technologies

Ancient

  • Agriculture By OCHA Visual Information Unit
  • Jug By Vladimir Belochkin for Pottery
  • Archery By icon 54
  • Mining By art shop
  • Sailing By Daniela Baptista
  • Sundial By Bonegolem for Calendar
  • Cuneiform By Michael Wohlwend for Writing
  • Trap By Sergey Demushkin for Trapping
  • innovative By Matt Brooks for The Wheel
  • Bricks By Vaibhav Radhakrishnan for Construction
  • Mallet By Ben Avery for Bronze Working

Classical

Medieval

Renaissance

Industrial

Modern

Information

Future

Terrain

Nations

Promotions

  • Sight By Jejen Juliansyah Nur Agung for Scouting
  • skill bow rain arrow by Maxicons for Barrage
  • Bomb By Angelo Troiano for Bombardment
  • Private E2 By Yeong Rong Kim for Shock
  • Private First Class By Yeong Rong Kim for Drill
  • Medic By Yohann Berger for Medic
  • City By iconcheese for Siege
  • Skull and Crossbones By Anton Outkine for Coastal Raider
  • Spear By Deemak Daksina for Formation
  • Wall By Graphic Tigers for Volley
  • Lightning By Mooms for Blitz
  • Move By Sandra for Mobility
  • accuracy By vigtographics for Targeting
  • location by Humantech for Accuracy
  • Plane By Tran Minh Villageois for Interception
  • Hammer by Thengakola for Air Repair
  • Hook By Yeong Rong Kim for Boarding Party
  • Leaf By Paul Verhulst for Indirect Fire
  • Move By Muneer A.Safiah for Logistics
  • Evasion By Anna Sophie for Evasion
  • Interrupt by Stephen Plaster for Ambush
  • Submarine by Lloyd Humphreys for Wolfpack
  • Axe by Brian Oppenlander for Woodsman
  • Competition by luca fruzza
  • Icon for Flight Deck is made by JackRainy
  • Icon for Armor Plating is made by JackRainy
  • Slingshot by James Keuning for Slinger Withdraw
  • Anchor by Gregor Cresnar for Amphibious

Others

  • Circle By Aybige
  • Arrow By Joe Mortell for movement
  • Swap By iconomania for swapping units
  • Connection By Travis Avery
  • Skull By Vladimir Belochkin for disbanding units
  • Crosshair By Bakunetsu Kaito for selecting enemies to attack
  • City By Felix Westphal
  • Fire By Lloyd Humphreys for "city being razed" icon
  • Sleep By Saeful Muslim
  • Banner By Emir Palavan for embarked units
  • Arrow By uzeir syarief for moving between idle units
  • Replace By Mike Rowe for switching tiles between cities
  • Resistance By HeadsOfBirds
  • Viking Hat By my name is mud for pillaging improvements
  • Aim By Kaviashri for ranged strength
  • Capitol By Loren Klein for City-States
  • Aircraft By Tom Fricker for aircraft icon in city button
  • radar scan By icon 54 for Range
  • short range radar by Vectors Point for Intercept range
  • Puppet By Ben Davis for puppeted cities
  • City By Muhajir ila Robbi in the Icon center
  • Lock by Vadim Solomakhin for locked tiles
  • Hourglass by I Create Stuff for the 'Turn' icon
  • Dove by Sandra for Faith

Main menu

Sound credits

Sounds are from FreeSound.org and are either Creative Commons or Public Domain

  • Soft two-fingered snap By EathanMarkson as 'click' for most clicks
  • Pencil1 By stijn as 'paper' for opening and closing the tech picker
  • SawInOut01 By kingof_thelab for construction picking?
  • Chain Snare #1 By lovesbody as 'fortify'
  • Level up By Marregheriti as 'upgrade' for upgrading units
  • levelup By Seidhepriest as 'chimes' for special actions (free tech, build city, hurry wonder etc.)
  • Coin By TheDJoe93 as 'coin' for purchasing tiles and constructions
  • fast simple chop 1 By dave.dev as 'whoosh' for moving units around
  • Military kick By Dodgy C as 'promote' for unit promotions
  • Tank reload By KieranKeegan as 'setup' for siege unit setup
  • Scribble_short By waldram as 'policy' for adopting policies
  • Hit Impact by Mrguff as 'throw' for catapult & trebuchet attacks
  • Slingshot fly by 2 by saturdaysoundguy as 'arrow' for arrow attacks
  • Metal hit slide by orginaljun as 'nonmetalhit' for pre-metal melee sounds
  • klick_anlauf By jascha as 'metalhit' for metal melee sounds
  • Horse Neigh 2 By GoodListener as 'horse' for cavalry attack sounds
  • machine gun 001 - loop By pgi as 'machinegun' for machine gun attack sound
  • uzzi_full_single By Deganoth as 'shot' for bullet attacks
  • Grenade Launcher 2 By Daniel Simon as city bombard sound (CC Attribution 3.0 license)
  • Woosh by Mark DiAngelo as 'slider' sound (CC Attribution 3.0 license)
  • Tornado-Siren-II by Delilah as part of 'nuke' sound (CC Attribution 3.0 license)
  • Explosion-Ultra-Bass by Mark DiAngelo as part of 'nuke' sound (CC Attribution 3.0 license)
  • Short Choir by Breviceps as 'choir' for free great person pick

Music

The following music is from https://filmmusic.io "Thatched Villagers" by Kevin MacLeod (https://incompetech.com) License: CC BY (http://creativecommons.org/licenses/by/4.0/)