Example #1
0
        public FreeActorWithDelivery(ActorInitializer init, FreeActorWithDeliveryInfo info)
        {
            self = init.Self;
            Info = info;

            DoDelivery(self.Location + info.DeliveryOffset, info.Actor, info.DeliveringActor);
        }
Example #2
0
 public WithBridgeSpriteBody(ActorInitializer init, WithBridgeSpriteBodyInfo info)
     : base(init, info, () => 0)
 {
     self = init.Self;
     bridgeInfo = info;
     bridgeLayer = init.World.WorldActor.Trait<BridgeLayer>();
 }
Example #3
0
        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);
            });
        }
Example #4
0
 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;
 }
Example #5
0
 public Gate(ActorInitializer init, GateInfo info)
     : base(init, info)
 {
     this.info = info;
     self = init.Self;
     OpenPosition = info.TransitionDelay;
 }
Example #6
0
 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();
 }
Example #8
0
		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;
		}
Example #9
0
 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>();
 }
Example #10
0
File: Husk.cs Project: pdovy/OpenRA
 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);
 }
Example #11
0
        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);
 }
Example #13
0
        public PowerManager(ActorInitializer init, PowerManagerInfo info)
        {
            Info = info;
            Player = init.self.Owner;

            init.world.ActorAdded += ActorAdded;
            init.world.ActorRemoved += ActorRemoved;
        }
Example #14
0
 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);
 }
Example #15
0
 public AttackPopupTurreted(ActorInitializer init, AttackPopupTurretedInfo info)
     : base(init.self)
 {
     Info = info;
     Turret = init.self.Trait<Turreted>();
     if (init.Contains<SkipMakeAnimsInit>())
         buildComplete = true;
 }
Example #16
0
        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];
        }
Example #17
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;
        }
Example #18
0
 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 ) ) );
 }
Example #19
0
        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;
        }
Example #20
0
        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;
        }
Example #21
0
        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));
        }
Example #23
0
        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);
        }
Example #24
0
        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);
        }
Example #25
0
        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);
        }
Example #26
0
        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;
            });
        }
Example #27
0
 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;
     }
 }
Example #28
0
        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)));
        }
Example #29
0
        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 });
        }
Example #30
0
        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;
        }
Example #31
0
 public object Create(ActorInitializer init)
 {
     return(new WithMakeAnimation(init, this));
 }
Example #32
0
 public object Create(ActorInitializer init)
 {
     return(new RevealsShroud(this));
 }
Example #33
0
 public override object Create(ActorInitializer init)
 {
     return(new GiveUnitCrateAction(init.Self, this));
 }
Example #34
0
 public override object Create(ActorInitializer init)
 {
     return(new WithSpriteTurret(init.Self, this));
 }
Example #35
0
 public override object Create(ActorInitializer init)
 {
     return(new NukePower(init.Self, this));
 }
Example #36
0
 public override object Create(ActorInitializer init)
 {
     return(new MapBuildRadius(this));
 }
Example #37
0
 public FreeActorWithDelivery(ActorInitializer init, FreeActorWithDeliveryInfo info)
     : base(init, info)
 {
     self      = init.Self;
     this.info = info;
 }
Example #38
0
 public object Create(ActorInitializer init)
 {
     return(new Explodes(this));
 }
 public override object Create(ActorInitializer init)
 {
     return(new HarvesterAttackNotifier(init.Self, this));
 }
Example #40
0
 public override object Create(ActorInitializer init)
 {
     return(new Explodes(this, init.Self));
 }
Example #41
0
		public virtual object Create(ActorInitializer init) { return new Health(init, this); }
Example #42
0
 public override object Create(ActorInitializer init)
 {
     return(new RenderUnitReload(init.self));
 }
Example #43
0
 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));
 }
Example #46
0
 public override object Create(ActorInitializer init)
 {
     return(new FreeActorWithDelivery(init, this));
 }
Example #47
0
 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));
        }
Example #49
0
 public object Create(ActorInitializer init)
 {
     return(new RenderNameTag(init.Self, this));
 }
Example #50
0
 public object Create(ActorInitializer init)
 {
     return(new PlayerExperience());
 }
Example #51
0
 public override object Create(ActorInitializer init)
 {
     return(new AutoCarryall(init.Self, this));
 }
Example #52
0
 public virtual object Create(ActorInitializer init)
 {
     return(new Refinery(init.Self, this));
 }
Example #53
0
 public override object Create(ActorInitializer init)
 {
     return(new PortableChrono(init.Self, this));
 }
Example #54
0
 public override object Create(ActorInitializer init)
 {
     return(new AnnounceOnSeen(init.Self, this));
 }
Example #55
0
 public object Create(ActorInitializer init)
 {
     return(new Crate(init, this));
 }
 public object Create(ActorInitializer init)
 {
     return(new ConquestObjectivesPanel(this));
 }
Example #57
0
 public virtual object Create(ActorInitializer init)
 {
     return(new RenderVoxels(init.Self, this));
 }
Example #58
0
 public override object Create(ActorInitializer init)
 {
     return(new RejectsOrders(this));
 }
Example #59
0
 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());
 }