@@ -2015,29 +2015,12 @@ private void ApplyTechnologyToUnits(int playerId, TechnologyType tech)
20152015
20162016 switch ( tech )
20172017 {
2018- case TechnologyType . MeleeAttack1 :
2019- if ( ! unit . IsRanged ) unit . AttackDamage += config . MeleeAttackBonus1 ;
2018+ case TechnologyType . BlacksmithDamage :
2019+ unit . AttackDamage += config . BlacksmithDamageBonus ;
20202020 break ;
2021- case TechnologyType . MeleeAttack2 :
2022- if ( ! unit . IsRanged ) unit . AttackDamage += config . MeleeAttackBonus2 ;
2023- break ;
2024- case TechnologyType . RangedAttack1 :
2025- if ( unit . IsRanged ) unit . AttackDamage += config . RangedAttackBonus1 ;
2026- break ;
2027- case TechnologyType . RangedAttack2 :
2028- if ( unit . IsRanged ) unit . AttackDamage += config . RangedAttackBonus2 ;
2029- break ;
2030- case TechnologyType . MeleeArmor1 :
2031- unit . MeleeArmor += config . MeleeArmorBonus1 ;
2032- break ;
2033- case TechnologyType . MeleeArmor2 :
2034- unit . MeleeArmor += config . MeleeArmorBonus2 ;
2035- break ;
2036- case TechnologyType . RangedArmor1 :
2037- unit . RangedArmor += config . RangedArmorBonus1 ;
2038- break ;
2039- case TechnologyType . RangedArmor2 :
2040- unit . RangedArmor += config . RangedArmorBonus2 ;
2021+ case TechnologyType . BlacksmithDefense :
2022+ unit . MeleeArmor += config . BlacksmithDefenseBonus ;
2023+ unit . RangedArmor += config . BlacksmithDefenseBonus ;
20412024 break ;
20422025 case TechnologyType . Chemistry :
20432026 if ( unit . IsRanged ) unit . AttackDamage += config . ChemistryRangedBonus ;
@@ -2056,39 +2039,6 @@ public bool HasTechnology(int playerId, TechnologyType tech)
20562039 return playerTechnologies [ playerId ] . Contains ( tech ) ;
20572040 }
20582041
2059- public int GetMeleeAttackBonus ( int playerId )
2060- {
2061- int bonus = 0 ;
2062- if ( HasTechnology ( playerId , TechnologyType . MeleeAttack1 ) ) bonus += config . MeleeAttackBonus1 ;
2063- if ( HasTechnology ( playerId , TechnologyType . MeleeAttack2 ) ) bonus += config . MeleeAttackBonus2 ;
2064- return bonus ;
2065- }
2066-
2067- public int GetRangedAttackBonus ( int playerId )
2068- {
2069- int bonus = 0 ;
2070- if ( HasTechnology ( playerId , TechnologyType . RangedAttack1 ) ) bonus += config . RangedAttackBonus1 ;
2071- if ( HasTechnology ( playerId , TechnologyType . RangedAttack2 ) ) bonus += config . RangedAttackBonus2 ;
2072- if ( HasTechnology ( playerId , TechnologyType . Chemistry ) ) bonus += config . ChemistryRangedBonus ;
2073- return bonus ;
2074- }
2075-
2076- public int GetMeleeArmorBonus ( int playerId )
2077- {
2078- int bonus = 0 ;
2079- if ( HasTechnology ( playerId , TechnologyType . MeleeArmor1 ) ) bonus += config . MeleeArmorBonus1 ;
2080- if ( HasTechnology ( playerId , TechnologyType . MeleeArmor2 ) ) bonus += config . MeleeArmorBonus2 ;
2081- return bonus ;
2082- }
2083-
2084- public int GetRangedArmorBonus ( int playerId )
2085- {
2086- int bonus = 0 ;
2087- if ( HasTechnology ( playerId , TechnologyType . RangedArmor1 ) ) bonus += config . RangedArmorBonus1 ;
2088- if ( HasTechnology ( playerId , TechnologyType . RangedArmor2 ) ) bonus += config . RangedArmorBonus2 ;
2089- return bonus ;
2090- }
2091-
20922042 private void ProcessResearchCommand ( ResearchCommand cmd )
20932043 {
20942044 if ( cmd . PlayerId < 0 || cmd . PlayerId >= playerCount ) return ;
@@ -2099,22 +2049,14 @@ private void ProcessResearchCommand(ResearchCommand cmd)
20992049
21002050 var tech = ( TechnologyType ) cmd . TechType ;
21012051
2102- // Already researched or queued
21032052 if ( playerTechnologies [ cmd . PlayerId ] . Contains ( tech ) ) return ;
21042053 if ( building . ResearchQueue . Contains ( tech ) ) return ;
21052054
2106- // Check building type matches tech
21072055 bool validBuilding = false ;
21082056 switch ( tech )
21092057 {
2110- case TechnologyType . MeleeAttack1 :
2111- case TechnologyType . MeleeArmor1 :
2112- case TechnologyType . RangedAttack1 :
2113- case TechnologyType . RangedArmor1 :
2114- case TechnologyType . MeleeAttack2 :
2115- case TechnologyType . MeleeArmor2 :
2116- case TechnologyType . RangedAttack2 :
2117- case TechnologyType . RangedArmor2 :
2058+ case TechnologyType . BlacksmithDamage :
2059+ case TechnologyType . BlacksmithDefense :
21182060 validBuilding = building . Type == BuildingType . Blacksmith ;
21192061 break ;
21202062 case TechnologyType . Ballistics :
@@ -2126,17 +2068,9 @@ private void ProcessResearchCommand(ResearchCommand cmd)
21262068 }
21272069 if ( ! validBuilding ) return ;
21282070
2129- // Age requirement: tier 2 techs need age 3
21302071 int reqAge = GetRequiredAgeForTech ( tech ) ;
21312072 if ( playerAges [ cmd . PlayerId ] < reqAge ) return ;
21322073
2133- // Prerequisite: tier 2 requires tier 1
2134- if ( tech == TechnologyType . MeleeAttack2 && ! playerTechnologies [ cmd . PlayerId ] . Contains ( TechnologyType . MeleeAttack1 ) ) return ;
2135- if ( tech == TechnologyType . MeleeArmor2 && ! playerTechnologies [ cmd . PlayerId ] . Contains ( TechnologyType . MeleeArmor1 ) ) return ;
2136- if ( tech == TechnologyType . RangedAttack2 && ! playerTechnologies [ cmd . PlayerId ] . Contains ( TechnologyType . RangedAttack1 ) ) return ;
2137- if ( tech == TechnologyType . RangedArmor2 && ! playerTechnologies [ cmd . PlayerId ] . Contains ( TechnologyType . RangedArmor1 ) ) return ;
2138-
2139- // Check cost
21402074 var resources = ResourceManager . GetPlayerResources ( cmd . PlayerId ) ;
21412075 int foodCost , goldCost ;
21422076 GetResearchCost ( tech , out foodCost , out goldCost ) ;
@@ -2153,10 +2087,8 @@ private int GetRequiredAgeForTech(TechnologyType tech)
21532087 {
21542088 switch ( tech )
21552089 {
2156- case TechnologyType . MeleeAttack1 :
2157- case TechnologyType . MeleeArmor1 :
2158- case TechnologyType . RangedAttack1 :
2159- case TechnologyType . RangedArmor1 :
2090+ case TechnologyType . BlacksmithDamage :
2091+ case TechnologyType . BlacksmithDefense :
21602092 return 2 ;
21612093 default :
21622094 return 3 ;
@@ -2168,14 +2100,8 @@ private void GetResearchCost(TechnologyType tech, out int food, out int gold)
21682100 food = 0 ;
21692101 switch ( tech )
21702102 {
2171- case TechnologyType . MeleeAttack1 : gold = config . MeleeAttack1Cost ; break ;
2172- case TechnologyType . MeleeArmor1 : gold = config . MeleeArmor1Cost ; break ;
2173- case TechnologyType . RangedAttack1 : gold = config . RangedAttack1Cost ; break ;
2174- case TechnologyType . RangedArmor1 : gold = config . RangedArmor1Cost ; break ;
2175- case TechnologyType . MeleeAttack2 : gold = config . MeleeAttack2Cost ; break ;
2176- case TechnologyType . MeleeArmor2 : gold = config . MeleeArmor2Cost ; break ;
2177- case TechnologyType . RangedAttack2 : gold = config . RangedAttack2Cost ; break ;
2178- case TechnologyType . RangedArmor2 : gold = config . RangedArmor2Cost ; break ;
2103+ case TechnologyType . BlacksmithDamage : gold = config . BlacksmithDamageCost ; break ;
2104+ case TechnologyType . BlacksmithDefense : gold = config . BlacksmithDefenseCost ; break ;
21792105 case TechnologyType . Ballistics : food = config . BallisticsFoodCost ; gold = config . BallisticsGoldCost ; break ;
21802106 case TechnologyType . SiegeEngineering : food = config . SiegeEngineeringFoodCost ; gold = config . SiegeEngineeringGoldCost ; break ;
21812107 case TechnologyType . Chemistry : food = config . ChemistryFoodCost ; gold = config . ChemistryGoldCost ; break ;
@@ -5192,18 +5118,12 @@ private UnitData CreateTrainedUnit(int playerId, int unitType, FixedVector3 spaw
51925118 {
51935119 switch ( tech )
51945120 {
5195- case TechnologyType . MeleeAttack1 :
5196- if ( ! unitData . IsRanged ) unitData . AttackDamage += config . MeleeAttackBonus1 ; break ;
5197- case TechnologyType . MeleeAttack2 :
5198- if ( ! unitData . IsRanged ) unitData . AttackDamage += config . MeleeAttackBonus2 ; break ;
5199- case TechnologyType . RangedAttack1 :
5200- if ( unitData . IsRanged ) unitData . AttackDamage += config . RangedAttackBonus1 ; break ;
5201- case TechnologyType . RangedAttack2 :
5202- if ( unitData . IsRanged ) unitData . AttackDamage += config . RangedAttackBonus2 ; break ;
5203- case TechnologyType . MeleeArmor1 : unitData . MeleeArmor += config . MeleeArmorBonus1 ; break ;
5204- case TechnologyType . MeleeArmor2 : unitData . MeleeArmor += config . MeleeArmorBonus2 ; break ;
5205- case TechnologyType . RangedArmor1 : unitData . RangedArmor += config . RangedArmorBonus1 ; break ;
5206- case TechnologyType . RangedArmor2 : unitData . RangedArmor += config . RangedArmorBonus2 ; break ;
5121+ case TechnologyType . BlacksmithDamage :
5122+ unitData . AttackDamage += config . BlacksmithDamageBonus ; break ;
5123+ case TechnologyType . BlacksmithDefense :
5124+ unitData . MeleeArmor += config . BlacksmithDefenseBonus ;
5125+ unitData . RangedArmor += config . BlacksmithDefenseBonus ;
5126+ break ;
52075127 case TechnologyType . Chemistry :
52085128 if ( unitData . IsRanged ) unitData . AttackDamage += config . ChemistryRangedBonus ; break ;
52095129 case TechnologyType . SiegeEngineering :
0 commit comments