diff --git a/data/buttons/abilities/abilities.txt b/data/buttons/abilities/abilities.txt index 9ddcd2c45f..5664b35af0 100644 --- a/data/buttons/abilities/abilities.txt +++ b/data/buttons/abilities/abilities.txt @@ -114,6 +114,7 @@ cast_puncture = { unit_elven_swordsman unit_frank_heroic_swordsman unit_frank_spearman + unit_gaulish_chieftain unit_germanic_chieftain unit_germanic_spearman unit_gnomish_master_at_arms diff --git a/data/buttons/ability_learning.txt b/data/buttons/ability_learning.txt index 6e7b65265e..f9fbe771ae 100644 --- a/data/buttons/ability_learning.txt +++ b/data/buttons/ability_learning.txt @@ -56,6 +56,7 @@ learn_sword_mastery_bronze = { unit_germanic_chieftain unit_frank_heroic_swordsman unit_frank_knight_lord + unit_gaulish_chieftain unit_gnomish_master_at_arms unit_goblin_warlord unit_gothic_horse_lord @@ -87,9 +88,10 @@ learn_sword_mastery = { unit_deep_gnomish_master_at_arms unit_derro_shadowguard unit_elven_swordsman - unit_germanic_chieftain unit_frank_heroic_swordsman unit_frank_knight_lord + unit_gaulish_chieftain + unit_germanic_chieftain unit_gnomish_master_at_arms unit_goblin_warlord unit_gothic_horse_lord @@ -343,6 +345,7 @@ learn_puncture = { unit_elven_swordsman unit_frank_heroic_swordsman unit_frank_spearman + unit_gaulish_chieftain unit_germanic_chieftain unit_germanic_spearman unit_gnomish_master_at_arms diff --git a/data/buttons/units/gaulish_experience_upgrades.txt b/data/buttons/units/gaulish_experience_upgrades.txt new file mode 100644 index 0000000000..59d9f0d939 --- /dev/null +++ b/data/buttons/units/gaulish_experience_upgrades.txt @@ -0,0 +1,25 @@ +upgrade_to_gaulish_veteran_swordsman = { + pos = 1 + level = choose_individual_upgrade_level + action = experience_upgrade_to + value = unit_gaulish_veteran_swordsman + key = s + hint = "Upgrade to Veteran ~!Swordsman" + popup = popup_unit + unit_types = { + unit_gaulish_swordsman + } +} + +upgrade_to_gaulish_chieftain = { + pos = 1 + level = choose_individual_upgrade_level + action = experience_upgrade_to + value = unit_gaulish_chieftain + key = c + hint = "Upgrade to ~!Chieftain" + popup = popup_unit + unit_types = { + unit_gaulish_veteran_swordsman + } +} diff --git a/data/cheats/unit_cheats.txt b/data/cheats/unit_cheats.txt index 6280a5ec39..0f44c0d384 100644 --- a/data/cheats/unit_cheats.txt +++ b/data/cheats/unit_cheats.txt @@ -14,6 +14,14 @@ western_footman = { } } +gaulish_swordsman = { + code = vercingetorix + + effects = { + create_unit = unit_gaulish_swordsman + } +} + latin_legionary = { code = marius diff --git a/data/civilization_groups/western/celtic/celtic.txt b/data/civilization_groups/western/celtic/celtic.txt index f9997cba56..53f10970c2 100644 --- a/data/civilization_groups/western/celtic/celtic.txt +++ b/data/civilization_groups/western/celtic/celtic.txt @@ -4,6 +4,7 @@ celtic = { group = western class_unit_types = { town_hall = unit_gaulish_town_hall + infantry = unit_gaulish_swordsman } history = { diff --git a/data/historical_units/gauls/aedui_tribesmen.txt b/data/historical_units/gauls/aedui_tribesmen.txt index b0d8518532..13bdc43f7b 100644 --- a/data/historical_units/gauls/aedui_tribesmen.txt +++ b/data/historical_units/gauls/aedui_tribesmen.txt @@ -1,7 +1,7 @@ #some troops to defend against the Suebi aedui_warriors = { - unit_class = infantry + unit_type = unit_gaulish_swordsman quantity = 12 ai_active = false diff --git a/data/historical_units/gauls/sequani_tribesmen.txt b/data/historical_units/gauls/sequani_tribesmen.txt index 1f59de4095..2e075e2209 100644 --- a/data/historical_units/gauls/sequani_tribesmen.txt +++ b/data/historical_units/gauls/sequani_tribesmen.txt @@ -1,5 +1,5 @@ sequani_warriors = { - unit_class = infantry + unit_type = unit_gaulish_swordsman quantity = 4 history = { diff --git a/data/unit_types/units/gaulish/chieftain.txt b/data/unit_types/units/gaulish/chieftain.txt new file mode 100644 index 0000000000..7d5af74538 --- /dev/null +++ b/data/unit_types/units/gaulish/chieftain.txt @@ -0,0 +1,42 @@ +unit_gaulish_chieftain = { + name = "Chieftain" + parent = unit_template_heroic_infantry + civilization = gaulish + description = "Gaulish swordsmen are known to be fierce opponents in battle, and their chieftains most of all." + image_file = "units/gaulish/swordsman.png" + frame_size = { 72 72 } + animation_set = animations_melee_unit + icon = suebi_chieftain + corpse_type = unit_human_dead_body + day_sight_range_bonus = 1 + night_sight_range_bonus = -1 + weapon_classes = { + sword + thrusting_sword + } + hack_damage = true + ai_drops = { + unit_short_sword + unit_broad_sword + unit_spatha + unit_wooden_shield + unit_bronze_shield + unit_iron_shield + unit_kite_shield + unit_boots + unit_carrots + unit_cheese + unit_meat + unit_potion_of_healing + } + default_equipment = { + weapon = unit_short_sword + shield = unit_wooden_shield + boots = unit_boots + } + sounds = { + dead = basic_human_voices_dead + hit = sword_attack + miss = attack_miss + } +} diff --git a/data/unit_types/units/gaulish/swordsman.txt b/data/unit_types/units/gaulish/swordsman.txt new file mode 100644 index 0000000000..092420732a --- /dev/null +++ b/data/unit_types/units/gaulish/swordsman.txt @@ -0,0 +1,43 @@ +unit_gaulish_swordsman = { + name = "Swordsman" + parent = unit_template_infantry + civilization = gaulish + description = "Gaulish swordsmen are known to be fierce opponents in battle." + image_file = "units/gaulish/swordsman.png" + frame_size = { 72 72 } + animation_set = animations_melee_unit + icon = suebi_swordsman + corpse_type = unit_human_dead_body + day_sight_range_bonus = 1 + night_sight_range_bonus = -1 + button_key = s + weapon_classes = { + sword + thrusting_sword + } + hack_damage = true + ai_drops = { + unit_short_sword + unit_broad_sword + unit_spatha + unit_wooden_shield + unit_bronze_shield + unit_iron_shield + unit_kite_shield + unit_boots + unit_carrots + unit_cheese + unit_meat + unit_potion_of_healing + } + default_equipment = { + weapon = unit_short_sword + shield = unit_wooden_shield + boots = unit_boots + } + sounds = { + dead = basic_human_voices_dead + hit = sword_attack + miss = attack_miss + } +} diff --git a/data/unit_types/units/gaulish/veteran_swordsman.txt b/data/unit_types/units/gaulish/veteran_swordsman.txt new file mode 100644 index 0000000000..19a879dbe1 --- /dev/null +++ b/data/unit_types/units/gaulish/veteran_swordsman.txt @@ -0,0 +1,42 @@ +unit_gaulish_veteran_swordsman = { + name = "Veteran Swordsman" + parent = unit_template_veteran_infantry + civilization = gaulish + description = "Gaulish swordsmen are known to be fierce opponents in battle. These battle-hardened veterans are a force to be reckoned with." + image_file = "units/gaulish/swordsman.png" + frame_size = { 72 72 } + animation_set = animations_melee_unit + icon = suebi_veteran_swordsman + corpse_type = unit_human_dead_body + day_sight_range_bonus = 1 + night_sight_range_bonus = -1 + weapon_classes = { + sword + thrusting_sword + } + hack_damage = true + ai_drops = { + unit_short_sword + unit_broad_sword + unit_spatha + unit_wooden_shield + unit_bronze_shield + unit_iron_shield + unit_kite_shield + unit_boots + unit_carrots + unit_cheese + unit_meat + unit_potion_of_healing + } + default_equipment = { + weapon = unit_short_sword + shield = unit_wooden_shield + boots = unit_boots + } + sounds = { + dead = basic_human_voices_dead + hit = sword_attack + miss = attack_miss + } +} diff --git a/scripts/civilizations/germanic/upgrade.lua b/scripts/civilizations/germanic/upgrade.lua index 4ff85d96eb..6ffcc601c7 100644 --- a/scripts/civilizations/germanic/upgrade.lua +++ b/scripts/civilizations/germanic/upgrade.lua @@ -72,6 +72,7 @@ DefineModifier("upgrade-germanic-broad-sword", {"apply-to", "unit-teuton-ritter"}, {"apply-to", "unit-teuton-knight-lord"}, {"apply-to", "unit-frank-horseman"}, {"apply-to", "unit-frank-knight-lord"}, {"apply-to", "unit-gothic-horse-rider"}, {"apply-to", "unit-gothic-horse-lord"}, + {"apply-to", "unit_gaulish_swordsman"}, {"apply-to", "unit_gaulish_veteran_swordsman"}, {"apply-to", "unit_gaulish_chieftain"}, {"apply-to", "unit-latin-legionary"}, {"apply-to", "unit-latin-veteran-legionary"}, {"apply-to", "unit-latin-centurion"}, {"apply-to", "unit-slavic-swordsman"} ) @@ -95,6 +96,7 @@ DefineModifier("upgrade-germanic-bronze-shield", {"apply-to", "unit-teuton-ritter"}, {"apply-to", "unit-teuton-knight-lord"}, {"apply-to", "unit-frank-horseman"}, {"apply-to", "unit-frank-knight-lord"}, {"apply-to", "unit-gothic-horse-rider"}, {"apply-to", "unit-gothic-horse-lord"}, + {"apply-to", "unit_gaulish_swordsman"}, {"apply-to", "unit_gaulish_veteran_swordsman"}, {"apply-to", "unit_gaulish_chieftain"}, {"apply-to", "unit-latin-legionary"}, {"apply-to", "unit-latin-veteran-legionary"}, {"apply-to", "unit-latin-centurion"}, {"apply-to", "unit-slavic-swordsman"} ) diff --git a/scripts/civilizations/teuton/buttons.lua b/scripts/civilizations/teuton/buttons.lua index 8783d47b25..8425169ebd 100644 --- a/scripts/civilizations/teuton/buttons.lua +++ b/scripts/civilizations/teuton/buttons.lua @@ -359,7 +359,7 @@ DefineButton( { Pos = 1, Level = "choose-individual-upgrade-level", DefineButton( { Pos = 2, Level = "choose-individual-upgrade-level", Icon = "icon-teuton-ritter", Action = "experience_upgrade_to", Value = "unit-teuton-ritter", Key = "k", Hint = "Upgrade to ~!Knight", Popup = "popup_unit", - ForUnit = {"unit-teuton-swordsman", "unit_suebi_swordsman", "unit-norse-swordsman", "unit-latin-legionary", "unit-slavic-swordsman"} + ForUnit = {"unit-teuton-swordsman", "unit_suebi_swordsman", "unit-norse-swordsman", "unit_gaulish_swordsman", "unit-latin-legionary", "unit-slavic-swordsman"} } ) DefineButton( { Pos = 1, Level = "choose-individual-upgrade-level", diff --git a/scripts/civilizations/teuton/scenarios/the_battle_of_magetobria.lua b/scripts/civilizations/teuton/scenarios/the_battle_of_magetobria.lua index 98c23cff34..78c85d8683 100644 --- a/scripts/civilizations/teuton/scenarios/the_battle_of_magetobria.lua +++ b/scripts/civilizations/teuton/scenarios/the_battle_of_magetobria.lua @@ -52,7 +52,7 @@ if (LoadedGame == false) then unit = CreateUnit("unit-teuton-archer", 0, {GetPlayerData(0, "StartPosX"), GetPlayerData(0, "StartPosY")}) SetUnitVariable(unit, "Active", false) - unit = CreateUnit("unit-teuton-swordsman", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) + unit = CreateUnit("unit_gaulish_swordsman", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) SetUnitVariable(unit, "Active", false) unit = CreateUnit("unit-teuton-archer", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) SetUnitVariable(unit, "Active", false) diff --git a/scripts/civilizations/teuton/scenarios/the_home_of_the_boii.lua b/scripts/civilizations/teuton/scenarios/the_home_of_the_boii.lua index 65d80d810f..3170673cf6 100644 --- a/scripts/civilizations/teuton/scenarios/the_home_of_the_boii.lua +++ b/scripts/civilizations/teuton/scenarios/the_home_of_the_boii.lua @@ -54,17 +54,17 @@ if (LoadedGame == false) then unit = CreateUnit("unit-teuton-archer", 0, {GetPlayerData(0, "StartPosX"), GetPlayerData(0, "StartPosY")}) SetUnitVariable(unit, "Active", false) - unit = CreateUnit("unit-germanic-warrior", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) + unit = CreateUnit("unit_gaulish_swordsman", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) SetUnitVariable(unit, "Active", false) -- set town defender to passive AI (so that they do not participate in attacks) - unit = CreateUnit("unit-germanic-warrior", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) + unit = CreateUnit("unit_gaulish_swordsman", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) SetUnitVariable(unit, "Active", false) - unit = CreateUnit("unit-germanic-warrior", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) + unit = CreateUnit("unit_gaulish_swordsman", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) SetUnitVariable(unit, "Active", false) - unit = CreateUnit("unit-germanic-warrior", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) + unit = CreateUnit("unit_gaulish_swordsman", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) SetUnitVariable(unit, "Active", false) - unit = CreateUnit("unit-germanic-warrior", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) + unit = CreateUnit("unit_gaulish_swordsman", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) SetUnitVariable(unit, "Active", false) - unit = CreateUnit("unit-germanic-warrior", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) + unit = CreateUnit("unit_gaulish_swordsman", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) SetUnitVariable(unit, "Active", false) unit = CreateUnit("unit-germanic-archer", 1, {GetPlayerData(1, "StartPosX"), GetPlayerData(1, "StartPosY")}) SetUnitVariable(unit, "Active", false) diff --git a/scripts/civilizations/teuton/upgrade.lua b/scripts/civilizations/teuton/upgrade.lua index 0f5ec83678..dfaf72a399 100644 --- a/scripts/civilizations/teuton/upgrade.lua +++ b/scripts/civilizations/teuton/upgrade.lua @@ -92,6 +92,7 @@ DefineModifier("upgrade-teuton-spatha", {"apply-to", "unit-norse-swordsman"}, {"apply-to", "unit-norse-veteran-swordsman"}, {"apply-to", "unit-norse-heroic-swordsman"}, {"apply-to", "unit-teuton-ritter"}, {"apply-to", "unit-teuton-knight-lord"}, {"apply-to", "unit-gothic-horse-rider"}, {"apply-to", "unit-gothic-horse-lord"}, + {"apply-to", "unit_gaulish_swordsman"}, {"apply-to", "unit_gaulish_veteran_swordsman"}, {"apply-to", "unit_gaulish_chieftain"}, {"apply-to", "unit-latin-legionary"}, {"apply-to", "unit-latin-veteran-legionary"}, {"apply-to", "unit-latin-centurion"}, {"apply-to", "unit-slavic-swordsman"} ) @@ -112,6 +113,7 @@ DefineModifier("upgrade-teuton-iron-shield", {"apply-to", "unit-teuton-spearman"}, {"apply-to", "unit-frank-spearman"}, {"apply-to", "unit-teuton-ritter"}, {"apply-to", "unit-teuton-knight-lord"}, {"apply-to", "unit-frank-horseman"}, {"apply-to", "unit-frank-knight-lord"}, + {"apply-to", "unit_gaulish_swordsman"}, {"apply-to", "unit_gaulish_veteran_swordsman"}, {"apply-to", "unit_gaulish_chieftain"}, {"apply-to", "unit-gothic-horse-rider"}, {"apply-to", "unit-gothic-horse-lord"}, {"apply-to", "unit-latin-legionary"}, {"apply-to", "unit-latin-veteran-legionary"}, {"apply-to", "unit-latin-centurion"}, {"apply-to", "unit-slavic-swordsman"} diff --git a/scripts/stratagus.lua b/scripts/stratagus.lua index 0ba8f9e256..3e0a00e153 100644 --- a/scripts/stratagus.lua +++ b/scripts/stratagus.lua @@ -539,6 +539,7 @@ function StandardTriggers() GetUnitVariable(GetSelectedUnits()[1], "Ident") == "unit-teuton-swordsman" or GetUnitVariable(GetSelectedUnits()[1], "Ident") == "unit_suebi_swordsman" or GetUnitVariable(GetSelectedUnits()[1], "Ident") == "unit-frank-swordsman" + or GetUnitVariable(GetSelectedUnits()[1], "Ident") == "unit_gaulish_swordsman" or GetUnitVariable(GetSelectedUnits()[1], "Ident") == "unit-norse-swordsman" or GetUnitVariable(GetSelectedUnits()[1], "Ident") == "unit-slavic-swordsman" ) diff --git a/scripts/upgrade_military_doctrines.lua b/scripts/upgrade_military_doctrines.lua index 0ff32c8fa9..cba31c4818 100644 --- a/scripts/upgrade_military_doctrines.lua +++ b/scripts/upgrade_military_doctrines.lua @@ -54,6 +54,7 @@ DefineModifier("upgrade-shield-wall", {"apply-to", "unit_suebi_swordsman"}, {"apply-to", "unit_suebi_veteran_swordsman"}, {"apply-to", "unit_suebi_chieftain"}, {"apply-to", "unit-frank-swordsman"}, {"apply-to", "unit-frank-veteran-swordsman"}, {"apply-to", "unit-frank-heroic-swordsman"}, {"apply-to", "unit-teuton-spearman"}, {"apply-to", "unit-frank-spearman"}, + {"apply-to", "unit_gaulish_swordsman"}, {"apply-to", "unit_gaulish_veteran_swordsman"}, {"apply-to", "unit_gaulish_chieftain"}, {"apply-to", "unit-latin-legionary"}, {"apply-to", "unit-latin-veteran-legionary"}, {"apply-to", "unit-latin-centurion"}, {"apply-to", "unit-slavic-swordsman"}, {"apply-to", "unit-goblin-militia"}, @@ -81,6 +82,7 @@ DefineModifier("upgrade-svinfylking", {"apply-to", "unit_suebi_swordsman"}, {"apply-to", "unit_suebi_veteran_swordsman"}, {"apply-to", "unit_suebi_chieftain"}, {"apply-to", "unit-frank-swordsman"}, {"apply-to", "unit-frank-veteran-swordsman"}, {"apply-to", "unit-frank-heroic-swordsman"}, {"apply-to", "unit-teuton-spearman"}, {"apply-to", "unit-frank-spearman"}, + {"apply-to", "unit_gaulish_swordsman"}, {"apply-to", "unit_gaulish_veteran_swordsman"}, {"apply-to", "unit_gaulish_chieftain"}, {"apply-to", "unit-latin-legionary"}, {"apply-to", "unit-latin-veteran-legionary"}, {"apply-to", "unit-latin-centurion"}, {"apply-to", "unit-slavic-swordsman"}, {"apply-to", "unit-goblin-militia"},