public void CreateMoveable(int index) { //this method will be called only when a tile selected and it has a producer unit on it MoveableUnitBase unit = (MoveableUnitBase)(((IProducer)SelectedTileForInfo.PlacedUnit).Produce(index)); moveables.Add(unit); }
MoveableUnitBase CreateMoveableUnit(string name) { MoveableUnitBase moveableUnit = null; switch (name.ToLower()) { case "camper": moveableUnit = new CamperUnit { XDimension = 1, YDimension = 1 }; break; case "soldier": moveableUnit = new SoldierUnit { XDimension = 1, YDimension = 1 }; break; } return(moveableUnit); }
public object Clone() { MoveableUnitBase clone = (MoveableUnitBase)MemberwiseClone(); OnMoveableUnitCreated?.Invoke(clone); return(clone); }
void OnMoveUnit(MoveableUnitBase moveableUnit) { if (_moveableToGoMap.ContainsKey(moveableUnit) == false) { Debug.LogError("OnCharacterChanged -- trying to change visuals for character not in our map."); return; } var charGo = _moveableToGoMap[moveableUnit]; charGo.transform.position = new Vector3(moveableUnit.X, moveableUnit.Y, 0); }
public void OnMoveableUnitCreated(MoveableUnitBase moveableUnit) { var selectedTile = WorldController.instance.SelectedTileForInfo; moveableUnit.SetTile(((IProducer)selectedTile.PlacedUnit).SpawnPointTile); moveableUnit.CurrentTile.SetUnit(moveableUnit); var moveableGo = new GameObject(moveableUnit.Name); _moveableToGoMap.Add(moveableUnit, moveableGo); moveableGo.transform.position = new Vector3(moveableUnit.X, moveableUnit.Y, 0); moveableGo.transform.SetParent(this.transform, true); var sr = moveableGo.AddComponent <SpriteRenderer>(); sr.sprite = SpritesController.instance.GetSpriteByName(moveableUnit.ImageName); sr.sortingLayerName = "Moveables"; // Register our callback so that our GameObject gets updated whenever // the object's into changes. moveableUnit.OnUnitMove += OnMoveUnit; }