public override void Draw(MooseGame game, GameTime gameTime, SpriteBatch spriteBatch) { foreach (var spell in Spells) { spell.Draw(game, gameTime, spriteBatch); } }
public override void Update(MooseGame game, GameTime gameTime) { base.Update(game, gameTime); if (!DungeonPlayer.Instance.HasInputThisFrame) { return; } if (FrozenTurnCount != 0 && SeenCount > 0) { NextMove = MonsterUpdate(gameTime); } if (SeenCount > 0 && !SeenYet) { SeenYet = true; CurrentlyBlockingInput = true; this.TweenToScale(new(3, 3), .5f, onEnd: _ => this.TweenToScale(Vector2.One, .7f, .1f, onEnd: _ => CurrentlyBlockingInput = false)); } if (State == Dead) { player.NumKills++; } }
public override void Update(MooseGame _game, GameTime gameTime) { base.Update(_game, gameTime); if ((gameTime.TotalGameTime - LastUpdate).TotalSeconds > .05) { NextGeneration(); LastUpdate = gameTime.TotalGameTime; } }
public override void Draw(MooseGame mooseGame, GameTime gameTime, SpriteBatch spriteBatch) { base.Draw(mooseGame, gameTime, spriteBatch); if (NextMove != "" && !CurrentlyBlockingInput) { spriteBatch.Draw(game.ArrowTexture, WorldRectangle.Move(AnimationPosition.X + 8, AnimationPosition.Y + 8).ToRectangle(), null, Color.White, CalculateRotation(NextMove), new(8, 8), SpriteEffects.None, 1f); } }
public override void Update(MooseGame _, GameTime gameTime) { if (State == Dead) { Remove = true; } base.Update(game, gameTime); }
public override void Update(MooseGame game, GameTime gameTime) { var mageGame = (game as MageGame) !; base.Update(game, gameTime); string direction = null; var moveDelta = Vector2.Zero; if (game.IsKeyDown(Keys.Left)) { direction = Directions.West; moveDelta += Directions.WestVector; } else if (game.IsKeyDown(Keys.Right)) { direction = Directions.East; moveDelta += Directions.EastVector; } if (game.IsKeyDown(Keys.Down)) { direction ??= Directions.South; moveDelta += Directions.SouthVector; } else if (game.IsKeyDown(Keys.Up)) { direction ??= Directions.North; moveDelta += Directions.NorthVector; } else if (game.WasKeyJustPressed(Keys.Space)) { var shotDelta = Directions.GetVector(Direction); mageGame.Cast(MageGame.GetDef <Spells.FireballDef>() !, Position, Position + 120 * shotDelta); return; } if (direction != null) { Direction = direction; var deltaX = new Vector2(moveDelta.X, 0); var deltaY = new Vector2(0, moveDelta.Y); if (!mageGame.BlocksPlayer(Position + 8 * deltaX)) { Position += 2 * deltaX; } if (!mageGame.BlocksPlayer(Position + 8 * deltaY)) { Position += 2 * deltaY; } } }
public override void Draw(MooseGame game, GameTime gameTime, ILayer layer, Vector2 drawOffset) { if (layer is not IObjectLayer objectLayer) { throw new Exception("Object layer expected"); } foreach (var obj in objectLayer) { obj.Draw(game, gameTime, SpriteBatch); // TODO: Draw offset } }
public override void Update(MooseGame game, GameTime gameTime) { foreach (var spell in Spells) { spell.Update(game, gameTime); } if (Spells.All(s => s.State == Dead)) { Remove = true; State = Dead; } }
public override void Update(MooseGame game, GameTime gameTime) { base.Update(game, gameTime); if (State == Hit && !hasHit) { hasHit = true; StateCompleteAction = () => State = Dead; Effect(); } else if (State == Dead) { Remove = true; } }
public override void Draw(MooseGame game, GameTime gameTime, ILayer layer, Vector2 drawOffset) { var dungeonGame = (game as DungeonGame) !; if (layer is not IObjectLayer objectLayer) { throw new Exception("Object layer expected"); } foreach (var obj in objectLayer) { if (dungeonGame.Player.CanSee(obj.Position) == FogOfWar.None) { obj.Draw(game, gameTime, SpriteBatch); } } }
public override void Draw(MooseGame game, GameTime _gameTime, ILayer layer, Vector2 drawOffset) { if (layer is not ITileLayer <TTile> tileLayer) { throw new Exception("TileLayer<TTile> layer expected"); } for (int i = 0; i < tileLayer.Width; i++) { for (int j = 0; j < tileLayer.Height; j++) { var tile = tileLayer.GetTileValue(i, j); int tileValue = (int)Enum.ToObject(typeof(TTile), tile); if (tileValue >= 0) { DrawSprite(tileValue, tile, i, j, tileLayer, drawOffset); } } } }
public override void Update(MooseGame game, GameTime gameTime) { base.Update(game, gameTime); if (SpellDef.TurnBased && !player.HasInputThisFrame) { return; } if (State == Hit && !hasHit) { hasHit = true; StateCompleteAction = () => State = Dead; Effect(); } else if (State == Dead) { Owner.RemoveSpell(this); Remove = true; } }
public override void Update(MooseGame _game, GameTime gameTime) { if (State == States.Fly) { Position = FlightPath.Current; FlightPath.MoveNext(); FlightPath.MoveNext(); FlightPath.MoveNext(); if (IsBlocked()) { State = States.Hit; StateCompleteAction = () => State = States.Dead; } } if (State == States.Dead) { Remove = true; } base.Update(_game, gameTime); }
public override void Update(MooseGame game, GameTime gameTime) { if (State == Active) { StateCompleteAction = null; for (var i = 0; i < 5; i++) { FlightPath.MoveNext(); Position = FlightPath.Current; if (MageGame.Instance.BlocksPlayer(Position)) { State = Hit; StateCompleteAction = () => State = Dead; ActiveTweens.ForEach(t => t.Cancel()); break; } } } base.Update(game, gameTime); }
public override void Update(MooseGame mooseGame, GameTime gameTime) { if (TurnsAlive < 0) { State = Dead; } else if (!hasHit) { var(x, y) = GetCell(); var monster = game.GetMonster(x, y); if (monster != null) { State = Hit; } } base.Update(mooseGame, gameTime); if (game.Player.HasInputThisFrame) { TurnsAlive--; hasHit = false; } }
public override void Update(MooseGame _, GameTime gameTime) { if (State == Active) { StateCompleteAction = null; FlightPath.MoveNext(); FlightPath.MoveNext(); FlightPath.MoveNext(); FlightPath.MoveNext(); FlightPath.MoveNext(); Position = FlightPath.Current; var(x, y) = GetCell(); if (game.GetDungeonTile(x, y).IsBlocking() || game.GetMonsterTile(x, y) != MonsterTile.None) { State = Hit; StateCompleteAction = () => State = Dead; ActiveTweens.ForEach(t => t.Cancel()); } } base.Update(game, gameTime); }
public virtual void Update(MooseGame game, GameTime gameTime) { }
public abstract void Draw(MooseGame game, GameTime gameTime, ILayer layer, Vector2 drawOffset);
public override void Draw(MooseGame game, GameTime gameTime, SpriteBatch spriteBatch) => spriteBatch.Draw(TextureGameObjectDef.Texture, WorldRectangle.Move(Origin).ToRectangle(), TextureGameObjectDef.SourceRectangle, Color, Rotation, Origin, SpriteEffects, LayerDepth);
public override void Update(MooseGame game, GameTime gameTime) { }