コード例 #1
0
 void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e)
 {
     overlay.ReplaceAnim(RenderSprites.NormalizeSequence(overlay, e.DamageState, info.Sequence));
 }
コード例 #2
0
ファイル: Bib.cs プロジェクト: voidAsterisk/OpenRA
 public Bib(Actor self, BibInfo info)
 {
     this.info = info;
     rs        = self.Trait <RenderSprites>();
     bi        = self.Info.Traits.Get <BuildingInfo>();
 }
コード例 #3
0
 public string NormalizeSequence(Actor self, string sequence)
 {
     return(RenderSprites.NormalizeSequence(defaultAnimation, self.GetDamageState(), sequence));
 }
コード例 #4
0
 void INotifyTeslaCharging.Charging(Actor self, Target target)
 {
     charging = true;
     overlay.PlayThen(RenderSprites.NormalizeSequence(overlay, self.GetDamageState(), info.Sequence), () => charging = false);
 }
コード例 #5
0
        protected override void OnEnterComplete(Actor self, Actor targetActor)
        {
            self.World.AddFrameEndTask(w =>
            {
                if (infector.IsTraitDisabled)
                {
                    return;
                }

                var infectable = targetActor.TraitOrDefault <InfectableOld>();
                if (infectable == null || infectable.IsTraitDisabled || infectable.Infector != null)
                {
                    return;
                }

                w.Remove(self);

                infectable.Infector             = self;
                infectable.InfectorTrait        = infector;
                infectable.FirepowerMultipliers = self.TraitsImplementing <IFirepowerModifier>()
                                                  .Select(a => a.GetFirepowerModifier()).ToArray();
                infectable.Ticks = infector.Info.DamageInterval;
                infectable.GrantCondition(targetActor);
                infectable.RevokeCondition(targetActor, true);

                infector.GrantCondition(self);
                if (infector.Info.Sequence != null)
                {
                    var rs = self.Trait <RenderSprites>();

                    var image          = rs.GetImage(self);
                    infectable.Overlay = new Animation(self.World, image, () => targetActor.Trait <IFacing>().Facing);
                    if (infector.Info.StartSequence != null)
                    {
                        infectable.Overlay.PlayThen(RenderSprites.NormalizeSequence(infectable.Overlay, self.GetDamageState(), infector.Info.StartSequence),
                                                    () => infectable.Overlay.PlayRepeating(RenderSprites.NormalizeSequence(infectable.Overlay, self.GetDamageState(), infector.Info.Sequence)));
                    }
                    else
                    {
                        infectable.Overlay.PlayRepeating(RenderSprites.NormalizeSequence(infectable.Overlay, self.GetDamageState(), infector.Info.Sequence));
                    }
                }
            });
        }
コード例 #6
0
ファイル: WithBuildingBib.cs プロジェクト: Mete0/anki-OpenRA
 public WithBuildingBib(Actor self, WithBuildingBibInfo info)
 {
     this.info = info;
     rs        = self.Trait <RenderSprites>();
     bi        = self.Info.TraitInfo <BuildingInfo>();
 }
コード例 #7
0
ファイル: DeadBuildingState.cs プロジェクト: epicelite/OpenRA
 public DeadBuildingState(Actor self, DeadBuildingStateInfo info)
 {
     this.info = info;
     rs        = self.Trait <RenderSprites>();
     self.Trait <Health>().RemoveOnDeath = !rs.anim.HasSequence("dead");
 }
コード例 #8
0
 public void DamageStateChanged(Actor self, AttackInfo e)
 {
     overlay.ReplaceAnim(RenderSprites.NormalizeSequence(overlay, e.DamageState, overlay.CurrentSequence.Name));
 }
コード例 #9
0
 public WithDisguisingInfantryBody(ActorInitializer init, WithDisguisingInfantryBodyInfo info)
     : base(init, info)
 {
     rs       = init.Self.Trait <RenderSprites>();
     disguise = init.Self.Trait <Disguise>();
 }