void EndMove(Direction dir) { //else change value Value = map.GetNewValue(value, dir); //set position and add to tiles LayeredGridPosition += dir; GridPosition += dir; PlaceInWorld(); //rejoin tiles in map Map.Add(LayeredGridPosition, this); OnTileEndMove?.Invoke(this); }
void Merge(Direction dir) { MoveableTile mergedInto = map.GetTileAt(LayeredGridPosition + dir) as MoveableTile; //OnMerge mergedInto.PlayMergeAnimation(); mergedInto.mergeAudioSrc.Play(); OnMerged?.Invoke(this, mergedInto); //movement ended OnTileEndMove?.Invoke(this); //"merged" with existing tile ActivateMergeEffectSelfMoving(mergedInto); //Destroy(gameObject); //InvokeOnDeath(); KillTile(); }