public PreyBuildActivity(Actor self, Actor dockact, bool facingDock, Dock d) { info = self.Info.TraitInfo <AcolytePreyBuildInfo>(); wsb = self.Trait <WithSpriteBody>(); dockactor = dockact; lockfacing = facingDock; playanim = true; this.d = d; ticks = self.Info.TraitInfo <AcolytePreyBuildInfo>().Buildinterval; undeadBuilder = dockactor.TraitsImplementing <UndeadBuilder>().FirstOrDefault(); conditionManager = self.Trait <ConditionManager>(); token = ConditionManager.InvalidConditionToken; condtion = self.Info.TraitInfo <AcolytePreyBuildInfo>().SelfEnabledCondition; pr = self.Owner.PlayerActor.Trait <PlayerResources>(); }
public WithUndeadBuilderOverlay(Actor self, WithUndeadBuilderOverlayInfo info) : base(info) { var rs = self.Trait <RenderSprites>(); var body = self.Trait <BodyOrientation>(); uBuilder = self.TraitsImplementing <UndeadBuilder>().FirstOrDefault(); buildComplete = !self.Info.HasTraitInfo <BuildingInfo>(); // always render instantly for units overlay = new Animation(self.World, rs.GetImage(self), () => IsTraitPaused || !buildComplete); overlay.PlayFetchIndex(info.Sequence, () => anomationframe); anim = new AnimationWithOffset(overlay, () => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))), () => IsTraitDisabled || !buildComplete, p => RenderUtils.ZOffsetFromCenter(self, p, 1)); rs.Add(anim, info.Palette, info.IsPlayerPalette); animationlength = anim.Animation.CurrentSequence.Length; }