public override Actuator CreateItem(LegacyMapBuilder context, Tile currentTile, IReadOnlyList <ActuatorItemData> matchedSequence) { IConstrain constrain = null; Tile targetTile = null; Texture2D decoration = null; context.PrepareActuatorData(matchedSequence[0], out targetTile, out constrain, out decoration, putOnWall: false); if (matchedSequence[0].Data == 0) { constrain = new PartyConstrain(); } else { constrain = new PartDirectionConstrain((MapDirection)(matchedSequence[0].Data - 1)); } var res = new FloorActuator(context.GetFloorPosition(matchedSequence[0].TilePosition, currentTile), currentTile, constrain, targetTile.ToEnumerable(), matchedSequence[0].GetActionStateX().ToEnumerable()); res.Graphics = new CubeGraphic { Position = res.Position, DrawFaces = CubeFaces.All, Outter = true, Scale = new Vector3(0.2f), Texture = decoration }; return(res); }
public KeyHoleActuator(Vector3 position, IEnumerable<Tile> targetTile, IEnumerable<ActionStateX> action, IConstrain constrain, bool destroyItem) : base(position) { this.targetTile = targetTile; this.action = action; Constrain = constrain; DestroyItem = destroyItem; }
public KeyHoleActuator(Vector3 position, IEnumerable <Tile> targetTile, IEnumerable <ActionStateX> action, IConstrain constrain, bool destroyItem) : base(position) { this.targetTile = targetTile; this.action = action; Constrain = constrain; DestroyItem = destroyItem; }
public override Actuator CreateItem(LegacyMapBuilder context, Tile currentTile, IReadOnlyList <ActuatorItemData> matchedSequence) { IConstrain constrain = null; if (matchedSequence[0].Data == 0) { constrain = new PartyConstrain(); } else { constrain = new PartDirectionConstrain((MapDirection)(matchedSequence[0].Data - 1)); } var res = new FloorActuator(context.GetFloorPosition(matchedSequence[0].TilePosition, currentTile), currentTile, constrain, matchedSequence.Select(context.GetTargetTile), matchedSequence.Select(x => x.GetActionStateX())); res.Graphics = new CubeGraphic { Position = res.Position, DrawFaces = CubeFaces.All, Outter = true, Scale = new Vector3(0.2f), Texture = context.GetTexture(matchedSequence.First(), putOnWall: false) }; return(res); }
public Teleport(Vector3 position, int targetMapIndex, Point targetGridPosition, MapDirection direction, bool teleportOpen, bool teleportVisible, IConstrain scopeConstrain) : base(position) { InitializeGraphics(); NextLevelIndex = targetMapIndex; TargetTilePosition = targetGridPosition; Direction = direction; ContentActivated = teleportOpen; Visible = teleportVisible; ScopeConstrain = scopeConstrain; }
public FloorActuator(Vector3 position, Tile currentTile, IConstrain constrain, IEnumerable <Tile> targetTile, IEnumerable <ActionStateX> action) : base(position) { this.targetTile = targetTile.ToArray(); this.action = action.ToArray(); Activated = false; CurrentTile = currentTile; Constrain = constrain; currentTile.ObjectEntered += CurrentTile_ObjectEntered; currentTile.ObjectLeft += CurrentTile_ObjectLeft; }
public override Actuator CreateItem(LegacyMapBuilder context, Tile currentTile, IReadOnlyList <ActuatorItemData> matchedSequence) { IConstrain constrain = null; Tile targetTile = null; Texture2D decoration = null; context.PrepareActuatorData(matchedSequence[0], out targetTile, out constrain, out decoration, putOnWall: false); return(new PartyPossesionActuator(context.GetFloorPosition(matchedSequence[0].TilePosition, currentTile), currentTile, constrain, targetTile.ToEnumerable(), matchedSequence[0].GetActionStateX().ToEnumerable())); }
public FloorActuator(Vector3 position, Tile currentTile, IConstrain constrain, IEnumerable<Tile> targetTile, IEnumerable<ActionStateX> action) : base(position) { this.targetTile = targetTile.ToArray(); this.action = action.ToArray(); Activated = false; CurrentTile = currentTile; Constrain = constrain; currentTile.ObjectEntered += CurrentTile_ObjectEntered; currentTile.ObjectLeft += CurrentTile_ObjectLeft; }
public override Actuator CreateItem(LegacyMapBuilder context, Tile currentTile, IReadOnlyList <ActuatorItemData> matchedSequence) { IConstrain constrain = null; Tile targetTile = null; Texture2D decoration = null; context.PrepareActuatorData(matchedSequence[0], out targetTile, out constrain, out decoration, putOnWall: false); var res = new FloorActuator(context.GetFloorPosition(matchedSequence[0].TilePosition, currentTile), currentTile, new OrConstrain(new IConstrain[] { new PartyConstrain(), new TypeConstrain(typeof(Creature)), new TypeConstrain(typeof(GrabableItem)) }), targetTile.ToEnumerable(), matchedSequence[0].GetActionStateX().ToEnumerable()); //TODO 14 28 actuator sends Clear message to pit(which open the pit => should be close) res.Graphics = new CubeGraphic { Position = res.Position, DrawFaces = CubeFaces.All, Outter = true, Scale = new Vector3(0.2f), Texture = decoration }; return(res); }
public bool PrepareActuatorData(ActuatorItemData i, out Tile targetTile, out IConstrain constrain, out Texture2D decoration, bool putOnWall) { targetTile = GetTargetTile(i); constrain = null; decoration = null; if (i.Data > 0) { constrain = new GrabableItemConstrain(GetItemFactory(i.Data), i.IsRevertable); } else { constrain = new NoConstrain(); } if (i.IsLocal) { throw new NotSupportedException("yet"); } decoration = GetTexture(i, putOnWall); return(true); }
public bool PrepareActuatorData(ActuatorItemData i, out Tile targetTile, out IConstrain constrain, out Texture2D decoration, bool putOnWall) { targetTile = GetTargetTile(i); constrain = null; decoration = null; if (i.Data > 0) constrain = new GrabableItemConstrain(GetItemFactory(i.Data), i.IsRevertable); else constrain = new NoConstrain(); if (i.IsLocal) throw new NotSupportedException("yet"); decoration = GetTexture(i, putOnWall); return true; }
public ExchangerActuator(Vector3 position, IGrabableItem storage, IConstrain exchangeConstrain, bool onceOnly) { Constrain = exchangeConstrain; Storage = storage; OnceOnly = onceOnly; }
public PartyPossesionActuator(Vector3 position, Tile actuatorTile, IConstrain constrain, IEnumerable<Tile> targetTile, IEnumerable<ActionStateX> action) : base(position, actuatorTile, constrain, targetTile, action) { }
public PartyPossesionActuator(Vector3 position, Tile actuatorTile, IConstrain constrain, IEnumerable <Tile> targetTile, IEnumerable <ActionStateX> action) : base(position, actuatorTile, constrain, targetTile, action) { }