@@ -56,6 +56,8 @@ export enum Skill {
56
56
DragonSaboteur = 40 ,
57
57
HighTide = 41 ,
58
58
Jeep = 42 ,
59
+ ShipIncreaseAttackAndRange = 43 ,
60
+ XFighterAttackIncrase = 44 ,
59
61
}
60
62
61
63
export const Skills = new Set < Skill > ( [
@@ -90,6 +92,8 @@ export const Skills = new Set<Skill>([
90
92
Skill . UnitAbilitySniperImmediateAction ,
91
93
Skill . UnitInfantryForestAttackAndDefenseIncrease ,
92
94
Skill . UnitRailDefenseIncreasePowerAttackIncrease ,
95
+ Skill . ShipIncreaseAttackAndRange ,
96
+ Skill . XFighterAttackIncrase ,
93
97
Skill . DragonSaboteur ,
94
98
Skill . Jeep ,
95
99
Skill . RecoverAirUnits ,
@@ -303,6 +307,16 @@ const skillConfig: Record<
303
307
requiresCrystal,
304
308
} ,
305
309
[ Skill . Jeep ] : { charges : 2 , cost : 800 , group : SkillGroup . Special } ,
310
+ [ Skill . ShipIncreaseAttackAndRange ] : {
311
+ charges : 3 ,
312
+ cost : 1000 ,
313
+ group : SkillGroup . Attack ,
314
+ } ,
315
+ [ Skill . XFighterAttackIncrase ] : {
316
+ charges : 4 ,
317
+ cost : 1200 ,
318
+ group : SkillGroup . Special ,
319
+ } ,
306
320
} ;
307
321
308
322
export const CampaignOnlySkills = new Set (
@@ -368,6 +382,7 @@ const attackUnitStatusEffects = new Map<Skill, SkillUnitModifierMap>([
368
382
[ Skill . VampireHeal , new Map ( [ [ UnitID . Medic , 0.5 ] ] ) ] ,
369
383
[ Skill . DragonSaboteur , new Map ( [ [ UnitID . Dragon , 0.1 ] ] ) ] ,
370
384
[ Skill . HealInfantryMedicPower , new Map ( [ [ UnitID . Medic , 0.5 ] ] ) ] ,
385
+ [ Skill . XFighterAttackIncrase , new Map ( [ [ UnitID . XFighter , 0.2 ] ] ) ] ,
371
386
] ) ;
372
387
373
388
const attackPowerStatusEffects : SkillMap = new Map ( [
@@ -388,10 +403,29 @@ const attackUnitPowerStatusEffects: UnitSkillMap = new Map([
388
403
] ) ,
389
404
] ,
390
405
[ Skill . HealInfantryMedicPower , new Map ( [ [ UnitID . Medic , 2 ] ] ) ] ,
406
+ [ Skill . XFighterAttackIncrase , new Map ( [ [ UnitID . XFighter , 0.5 ] ] ) ] ,
391
407
] ) ;
392
408
393
409
const attackMovementTypeStatusEffects : MovementSkillMap = new Map ( [
394
410
[ Skill . HighTide , new Map ( [ [ MovementTypes . Ship , 0.2 ] ] ) ] ,
411
+ [
412
+ Skill . ShipIncreaseAttackAndRange ,
413
+ new Map ( [
414
+ [ MovementTypes . Ship , 0.15 ] ,
415
+ [ MovementTypes . Amphibious , 0.15 ] ,
416
+ [ MovementTypes . Air , - 0.15 ] ,
417
+ [ MovementTypes . LowAltitude , - 0.15 ] ,
418
+ ] ) ,
419
+ ] ,
420
+ [
421
+ Skill . XFighterAttackIncrase ,
422
+ new Map ( [
423
+ [ MovementTypes . Air , 0.1 ] ,
424
+ [ MovementTypes . LowAltitude , 0.1 ] ,
425
+ [ MovementTypes . Amphibious , - 0.15 ] ,
426
+ [ MovementTypes . Ship , - 0.15 ] ,
427
+ ] ) ,
428
+ ] ,
395
429
] ) ;
396
430
397
431
const attackMovementTypePowerStatusEffects : MovementSkillMap = new Map ( [
@@ -549,6 +583,7 @@ const skillRangePowerEffects = new Map<number, RangeSkillMap>([
549
583
[ UnitID . Cannon , new Map ( [ [ Skill . ArtilleryRangeIncrease , [ 2 , 8 ] ] ] ) ] ,
550
584
[ UnitID . HeavyArtillery , new Map ( [ [ Skill . ArtilleryRangeIncrease , [ 3 , 7 ] ] ] ) ] ,
551
585
[ UnitID . Artillery , new Map ( [ [ Skill . ArtilleryRangeIncrease , [ 2 , 6 ] ] ] ) ] ,
586
+ [ UnitID . XFighter , new Map ( [ [ Skill . XFighterAttackIncrase , [ 1 , 3 ] ] ] ) ] ,
552
587
] ) ;
553
588
554
589
const skillMovementTypeRadiusEffects = new Map <
@@ -565,6 +600,7 @@ const skillMovementTypeRadiusEffects = new Map<
565
600
] ,
566
601
[ MovementTypes . HeavySoldier , new Map ( [ [ Skill . BuyUnitSuperAPU , 1 ] ] ) ] ,
567
602
[ MovementTypes . AirInfantry , new Map ( [ [ Skill . DragonSaboteur , 1 ] ] ) ] ,
603
+ [ MovementTypes . Amphibious , new Map ( [ [ Skill . ShipIncreaseAttackAndRange , 1 ] ] ) ] ,
568
604
] ) ;
569
605
570
606
const skillMovementTypeRadiusPowerEffects = new Map <
@@ -594,6 +630,8 @@ const skillMovementTypeRadiusPowerEffects = new Map<
594
630
] ) ,
595
631
] ,
596
632
[ MovementTypes . AirInfantry , new Map ( [ [ Skill . VampireHeal , 2 ] ] ) ] ,
633
+ [ MovementTypes . Ship , new Map ( [ [ Skill . ShipIncreaseAttackAndRange , 2 ] ] ) ] ,
634
+ [ MovementTypes . Amphibious , new Map ( [ [ Skill . ShipIncreaseAttackAndRange , 2 ] ] ) ] ,
597
635
] ) ;
598
636
599
637
const unitCosts = new Map < ID , Map < Skill , number > > ( [
@@ -1411,12 +1449,14 @@ export function shouldUpgradeUnit(unit: Unit, skill: Skill) {
1411
1449
case Skill . MovementIncreaseGroundUnitDefenseDecrease :
1412
1450
case Skill . NoUnitRestrictions :
1413
1451
case Skill . Sabotage :
1452
+ case Skill . ShipIncreaseAttackAndRange :
1414
1453
case Skill . UnitAbilitySniperImmediateAction :
1415
1454
case Skill . UnitBattleShipMoveAndAct :
1416
1455
case Skill . UnitInfantryForestAttackAndDefenseIncrease :
1417
1456
case Skill . UnitRailDefenseIncreasePowerAttackIncrease :
1418
1457
case Skill . UnlockPowerStation :
1419
1458
case Skill . VampireHeal :
1459
+ case Skill . XFighterAttackIncrase :
1420
1460
return false ;
1421
1461
default : {
1422
1462
skill satisfies never ;
0 commit comments