From 1a79cd2c698e774d78292d920a2332c949af085e Mon Sep 17 00:00:00 2001 From: dnqbob Date: Sun, 10 Sep 2023 13:08:10 +0800 Subject: [PATCH] Add spy for AI --- mods/ca/rules/ai.yaml | 37 ++++++++++++++++++++++++++++++++----- mods/ca/rules/infantry.yaml | 3 +++ 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/mods/ca/rules/ai.yaml b/mods/ca/rules/ai.yaml index 51acf063f7..6a60cc8a7e 100644 --- a/mods/ca/rules/ai.yaml +++ b/mods/ca/rules/ai.yaml @@ -1861,7 +1861,7 @@ Player: SquadSize: 25 SquadSizeRandomBonus: 11 AirUnitsTypes: heli, harr, hind, yak, mig, suk, suk.upg, kiro, orca, a10, orcb, auro, apch, venm, rah, scrn, stmr, enrv, mshp - ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk + ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk, spy NavalUnitsTypes: ss,msub,dd,ca,lst,pt,dd2,pt2,ss2,isub,sb,seas NavalProductionTypes: syrd, spen, syrd.gdi, spen.nod ConstructionYardTypes: fact,afac,sfac @@ -1937,6 +1937,7 @@ Player: s3: 40 s4: 15 s6: 5 + spy: 2 u3.squad: 40 rmbc: 15 enli: 10 @@ -2105,6 +2106,7 @@ Player: e6: 1 n6: 1 s6: 1 + spy: 2 u3.squad: 2 seal: 5 mech: 3 @@ -2134,7 +2136,7 @@ Player: SquadSize: 22 SquadSizeRandomBonus: 9 AirUnitsTypes: heli, harr, hind, yak, mig, suk, suk.upg, kiro, orca, a10, orcb, auro, apch, venm, rah, scrn, stmr, enrv, mshp - ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk + ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk, spy NavalUnitsTypes: ss,msub,dd,ca,lst,pt,dd2,pt2,ss2,isub,sb,seas NavalProductionTypes: syrd, spen, syrd.gdi, spen.nod ConstructionYardTypes: fact,afac,sfac @@ -2210,6 +2212,7 @@ Player: s3: 40 s4: 15 s6: 5 + spy: 2 u3.squad: 40 rmbc: 15 enli: 10 @@ -2377,6 +2380,7 @@ Player: e6: 1 n6: 1 s6: 1 + spy: 2 u3.squad: 2 seal: 5 mech: 3 @@ -2406,7 +2410,7 @@ Player: SquadSize: 18 SquadSizeRandomBonus: 8 AirUnitsTypes: heli, harr, hind, yak, mig, suk, suk.upg, kiro, orca, a10, orcb, auro, apch, venm, rah, scrn, stmr, enrv, mshp - ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk + ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk, spy NavalUnitsTypes: ss,msub,dd,ca,lst,pt,pt2,ss2,dd2,isub,sb,seas ConstructionYardTypes: fact,afac,sfac StaticAntiAirTypes: agun, sam, nsam, cram, shar @@ -2452,6 +2456,7 @@ Player: s3: 40 s4: 15 s6: 5 + spy: 2 u3.squad: 40 rmbc: 15 enli: 10 @@ -2613,6 +2618,7 @@ Player: e6: 1 n6: 1 s6: 1 + spy: 2 u3.squad: 2 seal: 5 mech: 3 @@ -2642,7 +2648,7 @@ Player: SquadSize: 14 SquadSizeRandomBonus: 5 AirUnitsTypes: heli, harr, hind, yak, mig, suk, suk.upg, kiro, orca, a10, orcb, auro, apch, venm, rah, scrn, stmr, enrv, mshp - ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk + ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk, spy NavalUnitsTypes: ss,msub,dd,ca,lst,pt,pt2,ss2,dd2,isub,sb,seas ConstructionYardTypes: fact,afac,sfac StaticAntiAirTypes: agun, sam, nsam, cram, shar @@ -2688,6 +2694,7 @@ Player: s3: 40 s4: 15 s6: 5 + spy: 2 u3.squad: 40 rmbc: 15 enli: 10 @@ -2849,6 +2856,7 @@ Player: e6: 1 n6: 1 s6: 1 + spy: 2 u3.squad: 2 seal: 5 mech: 3 @@ -2875,7 +2883,7 @@ Player: MinimumAttackForceDelay: 25 SquadSize: 1 AirUnitsTypes: heli, harr, hind, yak, mig, suk, suk.upg, kiro, orca, a10, orcb, auro, apch, venm, rah, scrn, stmr, enrv, mshp - ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk + ExcludeFromSquadsTypes: harv, harv.td, harv.scrin, harv.chrono, mcv, amcv, smcv, dog, e6, n6, s6, badr, badr.bomber, badr.cbomber, badr.nbomber, badr.mbomber, b2b, p51, tran.paradrop, halo.paradrop, nhaw.paradrop, u2, smig, a10.bomber, c17, c17.cargo, c17.clustermines, c17.xo, galx, uav, ocar.reinforce, ocar.xo, ocar.pod, horn, yf23.bomber, pod, pod2, pod3, buzz, buzz.ai, mspk, dtrk, ttrk, qtnk, spy NavalUnitsTypes: ss,msub,dd,ca,lst,pt,pt2,dd2,ss2,isub,sb,seas ConstructionYardTypes: fact,afac,sfac StaticAntiAirTypes: agun, sam, nsam, cram, shar @@ -2908,6 +2916,7 @@ Player: s3: 40 s4: 15 s6: 5 + spy: 2 u3.squad: 40 rmbc: 15 enli: 10 @@ -2974,3 +2983,21 @@ Player: AttackOrderName: DetonateAttack TargetLocation: true + GrantConditionOnPrerequisite@Disguisespy: + Condition: disguise-first + Prerequisites: disguise.first + SendUnitToAttackBotModule@Disguisespy: + RequiresCondition: (enable-brutal-ai || enable-vhard-ai || enable-hard-ai || enable-normal-ai || enable-easy-ai || enable-naval-ai) && disguise-first + ActorTypesAndAttackDesire: + spy: 100 + AttackOrderName: Disguise + ValidTargets: Disguise + AttackDistance: Random + SendUnitToAttackBotModule@Sendspy: + RequiresCondition: (enable-brutal-ai || enable-vhard-ai || enable-hard-ai || enable-normal-ai || enable-easy-ai || enable-naval-ai) && !disguise-first + ActorTypesAndAttackDesire: + spy: 100 + AttackOrderName: Infiltrate + ValidTargets: SpyInfiltrate + InvalidTargets: WaterActor + AttackDistance: Random diff --git a/mods/ca/rules/infantry.yaml b/mods/ca/rules/infantry.yaml index 9822d668c0..ef1274ed0c 100644 --- a/mods/ca/rules/infantry.yaml +++ b/mods/ca/rules/infantry.yaml @@ -737,6 +737,9 @@ SPY: Targetable: TargetTypes: Ground, Infantry, Disguise, ChaosImmune -Targetable@HERO: + ProvidesPrerequisite@bot-control: + Prerequisite: disguise.first + RequiresCondition: !disguise E7: Inherits: ^Soldier