public void Tick(SceneGame scene) { var tile = Curio.GetMainTile(); if (MoveFrame.Done) { MoveFrame = new Slider(MoveFrame.Time - MoveFrame.EndTime, MoveFrame.EndTime); var camera = Curio.GetCamera(); var offset = Direction.ToTileOffset(); var neighbor = tile.GetNeighborOrNull(offset.X, offset.Y); if (neighbor == null) { //Out of bounds Curio.Destroy(); } else { Curio.MoveTo(neighbor, MoveLerp, MoveFrame); camera?.MoveTo(neighbor, LerpHelper.Linear, MoveFrame); } } if (LifeTime.Done) { //Fizzle Curio.Destroy(); } LifeTime += scene.TimeModCurrent; MoveFrame += scene.TimeModCurrent; }
public void Tick(SceneGame scene) { var tile = Curio.GetMainTile(); if (tile != null) { foreach (var target in tile.Contents.Where(x => x != Shooter && x.IsAlive())) { if (!AlreadyHit.IsInvincible(target, 1)) { var actions = new List <ActionWrapper>(); actions.Add(new ActionEnergyKnifeHit(Curio, target).InSlot(ActionSlot.Active)); actions.Apply(target); AlreadyHit.Add(target); } } } AlreadyHit.Tick(scene.TimeModCurrent); if (Lifetime.Done) { Curio.Destroy(); } Lifetime += scene.TimeModCurrent; }
public void Tick(SceneGame scene) { var tile = Curio.GetMainTile(); if (tile != null) { if (tile.IsSolid()) { Curio.Destroy(); } } }
public void Tick(SceneGame scene) { var tile = Curio.GetMainTile(); if (tile != null) { if (tile.IsSolid()) { Curio.Destroy(); } var targets = tile.Contents.Where(x => x.IsAlive() && x != Projectile.Shooter); if (targets.Any()) { var target = targets.First(); var actions = new List <ActionWrapper>(); actions.Add(new ActionEnergyKnifeHit(Curio, target).InSlot(ActionSlot.Active)); actions.Apply(target); Curio.Destroy(); } } }
public void Tick(SceneGame scene) { Curio.Destroy(); }