public Squad(HackyAI bot, SquadType type, Actor target) { this.bot = bot; this.world = bot.world; this.random = bot.random; this.type = type; this.target = Traits.Target.FromActor(target); fsm = new StateMachine(); switch (type) { case SquadType.Assault: case SquadType.Rush: fsm.ChangeState(this, new GroundUnitsIdleState(), true); break; case SquadType.Air: fsm.ChangeState(this, new AirIdleState(), true); break; case SquadType.Protection: fsm.ChangeState(this, new UnitsForProtectionIdleState(), true); break; } }
internal World(Manifest manifest, Map map, OrderManager orderManager, bool isShellmap) { IsShellmap = isShellmap; this.orderManager = orderManager; orderGenerator_ = new UnitOrderGenerator(); Map = map; TileSet = Rules.TileSets[Map.Tileset]; SharedRandom = new XRandom(orderManager.LobbyInfo.GlobalSettings.RandomSeed); WorldActor = CreateActor("World", new TypeDictionary()); ActorMap = WorldActor.Trait <ActorMap>(); ScreenMap = WorldActor.Trait <ScreenMap>(); // Add players foreach (var cmp in WorldActor.TraitsImplementing <ICreatePlayers>()) { cmp.CreatePlayers(this); } // Set defaults for any unset stances foreach (var p in Players) { foreach (var q in Players) { if (!p.Stances.ContainsKey(q)) { p.Stances[q] = Stance.Neutral; } } } Sound.SoundVolumeModifier = 1.0f; }
// Called by the host's player creation code public void Activate(Player p) { this.p = p; enabled = true; playerPower = p.PlayerActor.Trait <PowerManager>(); supportPowerMngr = p.PlayerActor.Trait <SupportPowerManager>(); playerResource = p.PlayerActor.Trait <PlayerResources>(); builders = new BaseBuilder[] { new BaseBuilder(this, "Building", q => ChooseBuildingToBuild(q, false)), new BaseBuilder(this, "Defense", q => ChooseBuildingToBuild(q, true)) }; random = new XRandom((int)p.PlayerActor.ActorID); resourceTypes = Rules.Info["world"].Traits.WithInterface <ResourceTypeInfo>() .Select(t => t.TerrainType).ToArray(); }
public void Activate(Player p) { this.p = p; this.world = p.World; GameStarted = true; random = new XRandom((int)p.PlayerActor.ActorID); SpecialPowers = p.PlayerActor.Trait<SupportPowerManager>(); Power = p.PlayerActor.Trait<PowerManager>(); Resources = p.PlayerActor.Trait<PlayerResources>(); squadmanager = new SquadManager(this); // Initialize builders Builders = new List<IAIBuilder>() { new BaseBuilder(this), new DefenseBuilder(this), new InfantryBuilder(this), new VehicleBuilder(this), new AircraftBuilder(this), new ShipBuilder(this) }; // Have the bot cheat, gets free 500 000 credits at the start of the match Resources.GiveCash(500000); }