public Harvester(Actor self, HarvesterInfo info) { Info = info; Contents = new ReadOnlyDictionary <string, int>(contents); mobile = self.Trait <Mobile>(); resourceLayer = self.World.WorldActor.Trait <IResourceLayer>(); claimLayer = self.World.WorldActor.Trait <ResourceClaimLayer>(); }
public ResourceRenderer(Actor self, ResourceRendererInfo info) { Info = info; ResourceLayer = self.Trait <IResourceLayer>(); ResourceLayer.CellChanged += AddDirtyCell; RenderContent = new CellLayer <RendererCellContents>(self.World.Map); }
protected override void TraitEnabled(Actor self) { pathfinder = world.WorldActor.Trait <IPathFinder>(); resourceLayer = world.WorldActor.TraitOrDefault <IResourceLayer>(); claimLayer = world.WorldActor.TraitOrDefault <ResourceClaimLayer>(); // Avoid all AIs scanning for idle harvesters on the same tick, randomize their initial scan delay. scanForIdleHarvestersTicks = world.LocalRandom.Next(Info.ScanForIdleHarvestersInterval, Info.ScanForIdleHarvestersInterval * 2); }
public Floods(Actor self, FloodsInfo info) : base(info) { this.info = info; resourceLayer = self.World.WorldActor.Trait <IResourceLayer>(); cells.Add(self.Location); }
public EditorDefaultBrush(EditorViewportControllerWidget editorWidget, WorldRenderer wr) { this.editorWidget = editorWidget; worldRenderer = wr; world = wr.World; editorLayer = world.WorldActor.Trait <EditorActorLayer>(); editorActionManager = world.WorldActor.Trait <EditorActionManager>(); resourceLayer = world.WorldActor.Trait <IResourceLayer>(); }
protected override void TraitEnabled(Actor self) { // PERF: Avoid all AIs reevaluating assignments on the same tick, randomize their initial evaluation delay. scanForIdleMinersTicks = world.LocalRandom.Next(0, Info.MinimumScanDelay); pathfinder = world.WorldActor.Trait <IPathFinder>(); domainIndex = world.WorldActor.Trait <DomainIndex>(); resourceLayer = world.WorldActor.TraitOrDefault <IResourceLayer>(); requestUnitProduction = player.PlayerActor.TraitsImplementing <IBotRequestUnitProduction>().ToArray(); }
public ResourceCollector(Actor self, ResourceCollectorInfo info) : base(info) { this.info = info; Ticks = info.InitialDelay; resourceLayer = self.World.WorldActor.Trait <IResourceLayer>(); building = self.Trait <Building>(); rallyPoint = Exts.Lazy(() => self.IsDead ? null : self.TraitOrDefault <RallyPoint>()); }
public TSVeinsRenderer(Actor self, TSVeinsRendererInfo info) { this.info = info; world = self.World; resourceLayer = self.Trait <IResourceLayer>(); resourceLayer.CellChanged += AddDirtyCell; maxDensity = resourceLayer.GetMaxDensity(info.ResourceType); renderIndices = new CellLayer <int[]>(world.Map); borders = new CellLayer <Adjacency>(world.Map); }
public HarvestResource(Actor self, CPos targetCell) { harv = self.Trait <Harvester>(); harvInfo = self.Info.TraitInfo <HarvesterInfo>(); facing = self.Trait <IFacing>(); body = self.Trait <BodyOrientation>(); move = self.Trait <IMove>(); claimLayer = self.World.WorldActor.Trait <ResourceClaimLayer>(); resourceLayer = self.World.WorldActor.Trait <IResourceLayer>(); this.targetCell = targetCell; notifyHarvesterActions = self.TraitsImplementing <INotifyHarvesterAction>().ToArray(); }
public ResourceExplodeWeaponLayer(Actor self, ResourceExplodeWeaponLayerInfo info) { world = self.World; this.info = info; ticks = info.Interval.Length == 2 ? world.SharedRandom.Next(info.Interval[0], info.Interval[1]) : info.Interval[0]; resourceLayer = self.Trait <IResourceLayer>(); resourceLayer.CellChanged += UpdateCells; }
public EditorResourceBrush(EditorViewportControllerWidget editorWidget, string resourceType, WorldRenderer wr) { this.editorWidget = editorWidget; ResourceType = resourceType; worldRenderer = wr; world = wr.World; editorActionManager = world.WorldActor.Trait <EditorActionManager>(); editorCursor = world.WorldActor.Trait <EditorCursorLayer>(); resourceLayer = world.WorldActor.Trait <IResourceLayer>(); action = new AddResourcesEditorAction(world.Map, resourceType, resourceLayer); cursorToken = editorCursor.SetResource(wr, resourceType); }
public BaseBuilderQueueManager(BaseBuilderBotModule baseBuilder, string category, Player p, PowerManager pm, PlayerResources pr, IResourceLayer rl) { this.baseBuilder = baseBuilder; world = p.World; player = p; playerPower = pm; playerResources = pr; resourceLayer = rl; this.category = category; failRetryTicks = baseBuilder.Info.StructureProductionResumeDelay; minimumExcessPower = baseBuilder.Info.MinimumExcessPower; if (!baseBuilder.Info.NavalProductionTypes.Any()) { waterState = WaterCheck.DontCheck; } }
public SpiceBloom(Actor self, SpiceBloomInfo info) { this.info = info; resourceLayer = self.World.WorldActor.Trait <IResourceLayer>(); var rs = self.Trait <RenderSprites>(); body = new Animation(self.World, rs.GetImage(self)); rs.Add(new AnimationWithOffset(body, null, () => self.IsDead)); growTicks = self.World.SharedRandom.Next(info.Lifetime[0], info.Lifetime[1]); body.Play(info.GrowthSequences[0]); spurt = new Animation(self.World, rs.GetImage(self)); rs.Add(new AnimationWithOffset(spurt, null, () => !showSpurt)); spurt.PlayThen(info.SpurtSequence, () => showSpurt = false); }
public CustomBaseBuilderQueueManager(CustomBaseBuilderBotModule baseBuilder, string category, Player player, PowerManager powerManager, PlayerResources playerResources, IResourceLayer resourceLayer) { this.baseBuilder = baseBuilder; world = player.World; this.player = player; this.powerManager = powerManager; this.playerResources = playerResources; this.resourceLayer = resourceLayer; this.category = category; failRetryTicks = baseBuilder.Info.StructureProductionResumeDelay; minimumExcessPower = baseBuilder.Info.MinimumExcessPower; if (!baseBuilder.Info.NavalProductionTypes.Any()) { waterState = WaterCheck.DontCheck; } buildingInfluence = world.WorldActor.Trait <BuildingInfluence>(); }
public TransformsNearResources(Actor self, TransformsNearResourcesInfo info) { resourceLayer = self.World.WorldActor.Trait <IResourceLayer>(); delay = Common.Util.RandomInRange(self.World.SharedRandom, info.Delay); this.info = info; }
public SeedsResource(Actor self, SeedsResourceInfo info) : base(info) { this.info = info; resourceLayer = self.World.WorldActor.Trait <IResourceLayer>(); }
public AddResourcesEditorAction(string resourceType, IResourceLayer resourceLayer) { this.resourceType = resourceType; this.resourceLayer = resourceLayer; }
public AddResourcesEditorAction(Map map, string resourceType, IResourceLayer resourceLayer) { this.map = map; this.resourceType = resourceType; this.resourceLayer = resourceLayer; }