public FreeActorWithDelivery(ActorInitializer init, FreeActorWithDeliveryInfo info) { self = init.Self; Info = info; DoDelivery(self.Location + info.DeliveryOffset, info.Actor, info.DeliveringActor); }
public WithBridgeSpriteBody(ActorInitializer init, WithBridgeSpriteBodyInfo info) : base(init, info, () => 0) { self = init.Self; bridgeInfo = info; bridgeLayer = init.World.WorldActor.Trait<BridgeLayer>(); }
public BodyOrientation(ActorInitializer init, BodyOrientationInfo info) { this.info = info; var self = init.Self; var faction = init.Contains<FactionInit>() ? init.Get<FactionInit, string>() : self.Owner.Faction.InternalName; quantizedFacings = Exts.Lazy(() => { // Override value is set if (info.QuantizedFacings >= 0) return info.QuantizedFacings; var qboi = self.Info.TraitInfoOrDefault<IQuantizeBodyOrientationInfo>(); // If a sprite actor has neither custom QuantizedFacings nor a trait implementing IQuantizeBodyOrientationInfo, throw if (qboi == null) { if (self.Info.HasTraitInfo<WithSpriteBodyInfo>()) throw new InvalidOperationException("Actor '" + self.Info.Name + "' has a sprite body but no facing quantization." + " Either add the QuantizeFacingsFromSequence trait or set custom QuantizedFacings on BodyOrientation."); else throw new InvalidOperationException("Actor type '" + self.Info.Name + "' does not define a quantized body orientation."); } return qboi.QuantizedBodyFacings(self.Info, self.World.Map.Rules.Sequences, faction); }); }
public Transforms(ActorInitializer init, TransformsInfo info) { self = init.Self; this.info = info; buildingInfo = self.World.Map.Rules.Actors[info.IntoActor].TraitInfoOrDefault<BuildingInfo>(); faction = init.Contains<FactionInit>() ? init.Get<FactionInit, string>() : self.Owner.Faction.InternalName; }
public Gate(ActorInitializer init, GateInfo info) : base(init, info) { this.info = info; self = init.Self; OpenPosition = info.TransitionDelay; }
public Turreted(ActorInitializer init, TurretedInfo info) { this.info = info; turretFacing = info.InitialFacing; turretFacing = init.Contains<FacingInit>() ? init.Get<FacingInit,int>() : info.InitialFacing; facing = init.self.TraitOrDefault<IFacing>(); }
public AttackPopupTurreted(ActorInitializer init, AttackPopupTurretedInfo info) : base(init.self) { Info = info; buildComplete = init.Contains<SkipMakeAnimsInit>(); turret = turrets.FirstOrDefault(); }
public Transforms(ActorInitializer init, TransformsInfo info) { self = init.self; this.info = info; bi = self.World.Map.Rules.Actors[info.IntoActor].Traits.GetOrDefault<BuildingInfo>(); race = init.Contains<RaceInit>() ? init.Get<RaceInit, string>() : self.Owner.Country.Race; }
public Building(ActorInitializer init) { this.self = init.self; this.topLeft = init.Get<LocationInit,int2>(); this.Info = self.Info.Traits.Get<BuildingInfo>(); this.PlayerPower = init.self.Owner.PlayerActor.Trait<PowerManager>(); }
public Husk(ActorInitializer init) { this.self = init.self; this.location = init.Get<LocationInit,int2>(); this.Facing = init.Contains<FacingInit>() ? init.Get<FacingInit,int>() : 128; self.World.WorldActor.Trait<UnitInfluence>().Add(self, this); }
public Parachutable(ActorInitializer init, ParachutableInfo info) { this.self = init.self; this.info = info; positionable = self.TraitOrDefault<IPositionable>(); }
public RenderBuildingWarFactory(ActorInitializer init, RenderBuildingInfo info) : base(init, info) { roof = new Animation(GetImage(init.self)); var offset = new AnimationWithOffset( roof ) { ZOffset = 24 }; offset.DisableFunc = () => !buildComplete; anims.Add("roof", offset); }
public PowerManager(ActorInitializer init, PowerManagerInfo info) { Info = info; Player = init.self.Owner; init.world.ActorAdded += ActorAdded; init.world.ActorRemoved += ActorRemoved; }
public Building(ActorInitializer init) { this.self = init.self; this.topLeft = init.Get<LocationInit,int2>(); Info = self.Info.Traits.Get<BuildingInfo>(); self.CenterLocation = Game.CellSize * ((float2)topLeft + .5f * (float2)Info.Dimensions); }
public AttackPopupTurreted(ActorInitializer init, AttackPopupTurretedInfo info) : base(init.self) { Info = info; Turret = init.self.Trait<Turreted>(); if (init.Contains<SkipMakeAnimsInit>()) buildComplete = true; }
public Immobile(ActorInitializer init, ImmobileInfo info) { this.location = init.Get<LocationInit, CPos>(); if (info.OccupiesSpace) occupied = new [] { Pair.New(TopLeft, SubCell.FullCell) }; else occupied = new Pair<CPos, SubCell>[0]; }
public Aircraft( ActorInitializer init , AircraftInfo info) { if (init.Contains<LocationInit>()) this.Location = init.Get<LocationInit,int2>(); this.Facing = init.Contains<FacingInit>() ? init.Get<FacingInit,int>() : info.InitialFacing; this.Altitude = init.Contains<AltitudeInit>() ? init.Get<AltitudeInit,int>() : 0; Info = info; }
public RenderBuilding( ActorInitializer init, Func<int> baseFacing ) : base(init.self, baseFacing) { var self = init.self; if( init.Contains<SkipMakeAnimsInit>() || !self.Info.Traits.Get<RenderBuildingInfo>().HasMakeAnimation ) anim.PlayThen( "idle", () => self.World.AddFrameEndTask( _ => Complete( self ) ) ); else anim.PlayThen( "make", () => self.World.AddFrameEndTask( _ => Complete( self ) ) ); }
public Aircraft( ActorInitializer init , AircraftInfo info) { this.self = init.self; if( init.Contains<LocationInit>() ) this.SubPxPosition = 1024 * Util.CenterOfCell( init.Get<LocationInit, int2>() ); this.Facing = init.Contains<FacingInit>() ? init.Get<FacingInit,int>() : info.InitialFacing; this.Altitude = init.Contains<AltitudeInit>() ? init.Get<AltitudeInit,int>() : 0; Info = info; }
public static int GetInitialTurretFacing(ActorInitializer init, int def) { if (init.Contains<TurretFacingInit>()) return init.Get<TurretFacingInit,int>(); if (init.Contains<FacingInit>()) return init.Get<FacingInit,int>(); return def; }
public Immobile(ActorInitializer init, ImmobileInfo info) { location = init.Get<LocationInit, CPos>(); position = init.World.Map.CenterOfCell(location); if (info.OccupiesSpace) occupied = new[] { Pair.New(TopLeft, SubCell.FullCell) }; else occupied = new Pair<CPos, SubCell>[0]; }
public RenderBuildingWarFactory(ActorInitializer init, RenderBuildingInfo info) : base(init, info) { roof = new Animation(init.world, GetImage(init.self)); var bi = init.self.Info.Traits.Get<BuildingInfo>(); // Additional 512 units move from center -> top of cell var offset = FootprintUtils.CenterOffset(bi).Y + 512; Add("roof", new AnimationWithOffset(roof, null, () => !buildComplete, offset)); }
public FreeActorWithDelivery(ActorInitializer init, FreeActorWithDeliveryInfo info) { if (string.IsNullOrEmpty(info.Actor)) throw new InvalidDataException("Actor type was not specified!"); if (string.IsNullOrEmpty(info.DeliveringActor)) throw new InvalidDataException("Delivering actor type was not specified!"); self = init.Self; Info = info; DoDelivery(self.Location + info.DeliveryOffset, info.Actor, info.DeliveringActor, info.InitialActivity); }
public ProvidesPrerequisite(ActorInitializer init, ProvidesPrerequisiteInfo info) { this.info = info; prerequisite = info.Prerequisite; if (string.IsNullOrEmpty(prerequisite)) prerequisite = init.Self.Info.Name; var race = init.Contains<RaceInit>() ? init.Get<RaceInit, string>() : init.Self.Owner.Country.Race; Update(init.Self.Owner, race); }
public ProvidesPrerequisite(ActorInitializer init, ProvidesPrerequisiteInfo info) { this.info = info; prerequisite = info.Prerequisite; if (string.IsNullOrEmpty(prerequisite)) prerequisite = init.Self.Info.Name; var faction = init.Contains<FactionInit>() ? init.Get<FactionInit, string>() : init.Self.Owner.Faction.InternalName; Update(init.Self.Owner, faction); }
public UpgradeManager(ActorInitializer init) { upgrades = Exts.Lazy(() => { var ret = new Dictionary<string, UpgradeState>(); foreach (var up in init.Self.TraitsImplementing<IUpgradable>()) foreach (var t in up.UpgradeTypes) ret.GetOrAdd(t).Traits.Add(up); return ret; }); }
public AttackPopupTurreted(ActorInitializer init, AttackPopupTurretedInfo info) : base(init.self) { Info = info; Turret = init.self.Trait<Turreted>(); if (init.Contains<SkipMakeAnimsInit>()) { State = PopupState.Closed; init.self.Trait<RenderBuilding>() .PlayCustomAnimRepeating(init.self, "closed-idle"); Turret.desiredFacing = null; } }
public RenderBuilding( ActorInitializer init, RenderBuildingInfo info, Func<int> baseFacing ) : base(init.self, baseFacing) { Info = info; var self = init.self; // Work around a bogus crash anim.PlayRepeating( NormalizeSequence(self, "idle") ); // Can't call Complete() directly from ctor because other traits haven't been inited yet if (self.Info.Traits.Get<RenderBuildingInfo>().HasMakeAnimation && !init.Contains<SkipMakeAnimsInit>()) self.QueueActivity(new MakeAnimation(self, () => Complete(self))); else self.QueueActivity(new CallFunc(() => Complete(self))); }
public RenderBuildingRefinery(ActorInitializer init, RenderBuildingInfo info) : base(init, info) { playerResources = init.self.Owner.PlayerActor.Trait<PlayerResources>(); lights = new Animation(GetImage(init.self)); lights.PlayFetchIndex("lights", () => playerResources.OreCapacity != 0 ? (59 * playerResources.Ore) / (10 * playerResources.OreCapacity) : 0); var offset = new float2(-32,-21); anims.Add("lights", new AnimationWithOffset( lights, wr => offset, () => !buildComplete ) { ZOffset = 24 }); }
public Mobile(ActorInitializer init, MobileInfo info) { this.self = init.self; this.Info = info; uim = self.World.WorldActor.Trait<UnitInfluence>(); if (init.Contains<LocationInit>()) { this.__fromCell = this.__toCell = init.Get<LocationInit, int2>(); this.PxPosition = Util.CenterOfCell(fromCell); } this.Facing = init.Contains<FacingInit>() ? init.Get<FacingInit, int>() : info.InitialFacing; this.Altitude = init.Contains<AltitudeInit>() ? init.Get<AltitudeInit, int>() : 0; }
public object Create(ActorInitializer init) { return(new WithMakeAnimation(init, this)); }
public object Create(ActorInitializer init) { return(new RevealsShroud(this)); }
public override object Create(ActorInitializer init) { return(new GiveUnitCrateAction(init.Self, this)); }
public override object Create(ActorInitializer init) { return(new WithSpriteTurret(init.Self, this)); }
public override object Create(ActorInitializer init) { return(new NukePower(init.Self, this)); }
public override object Create(ActorInitializer init) { return(new MapBuildRadius(this)); }
public FreeActorWithDelivery(ActorInitializer init, FreeActorWithDeliveryInfo info) : base(init, info) { self = init.Self; this.info = info; }
public object Create(ActorInitializer init) { return(new Explodes(this)); }
public override object Create(ActorInitializer init) { return(new HarvesterAttackNotifier(init.Self, this)); }
public override object Create(ActorInitializer init) { return(new Explodes(this, init.Self)); }
public virtual object Create(ActorInitializer init) { return new Health(init, this); }
public override object Create(ActorInitializer init) { return(new RenderUnitReload(init.self)); }
public override object Create(ActorInitializer init) { return(new RenderUnitTurretedAim(init.self)); }
public override object Create(ActorInitializer init) { return(new RigBaseBuilderBotModule(init.Self, this)); }
public override object Create(ActorInitializer init) { return(new WithNukeLaunchOverlay(init.Self, this)); }
public override object Create(ActorInitializer init) { return(new FreeActorWithDelivery(init, this)); }
public object Create(ActorInitializer init) { return(new SmokeTrailWhenDamaged(init.self, this)); }
public int NotificationDelay = 1500; // Milliseconds public object Create(ActorInitializer init) { return(new ConquestVictoryConditions(this)); }
public object Create(ActorInitializer init) { return(new RenderNameTag(init.Self, this)); }
public object Create(ActorInitializer init) { return(new PlayerExperience()); }
public override object Create(ActorInitializer init) { return(new AutoCarryall(init.Self, this)); }
public virtual object Create(ActorInitializer init) { return(new Refinery(init.Self, this)); }
public override object Create(ActorInitializer init) { return(new PortableChrono(init.Self, this)); }
public override object Create(ActorInitializer init) { return(new AnnounceOnSeen(init.Self, this)); }
public object Create(ActorInitializer init) { return(new Crate(init, this)); }
public object Create(ActorInitializer init) { return(new ConquestObjectivesPanel(this)); }
public virtual object Create(ActorInitializer init) { return(new RenderVoxels(init.Self, this)); }
public override object Create(ActorInitializer init) { return(new RejectsOrders(this)); }
public Production(ActorInitializer init, ProductionInfo info) { Info = info; rp = Exts.Lazy(() => init.Self.IsDead ? null : init.Self.TraitOrDefault <RallyPoint>()); Faction = init.Contains <FactionInit>() ? init.Get <FactionInit, string>() : init.Self.Owner.Faction.InternalName; }
public object Create(ActorInitializer init) { return(new DungeonsAndDragonsExperience()); }