Run InteractionWithTile() { int tileKey = GetCurrentTileKey(); Tile tile = TileManager.GetExistTile(tileKey); Tile.TileType tileType = tile.tileType; var returnRun = Run.WaitSeconds(0); MultiAudioClip multiAudioClip = characterInstance.GetComponent <MultiAudioClip>(); if (moveState == MoveState.CheckingSaveTile) { if (tileType == Tile.TileType.Save) { characterInstance.CheckSaveTile(characterMover.GetCurrentTileKey()); multiAudioClip.audioSources[3].Play(); } } else { if (tileType == Tile.TileType.Buff) { NetworkManager.Buff(NetworkManager.Get().Id, tile.transform.position); } else if (tileType == Tile.TileType.Item) { if (characterInstance.GetNumberOfItems() < Character.MaxInventorySize) { multiAudioClip.audioSources[1].Play(); Character.Item newItem = SelectRandomItem(); returnRun = returnRun.Then(() => { return(EffectManager.Get().ShowItemAcquisitionEffect(tile.transform.position, newItem)); }) .ExecuteWhenDone(() => { characterInstance.AddItem(newItem); Debug.Log("Get Item!"); }); } else { Debug.Log("Inventory is full..."); } } else if (tileType == Tile.TileType.Jail) { returnRun = returnRun.Then(() => { return(EffectManager.Get().ShowJailEffect(tile.transform.position)); }) .ExecuteWhenDone(() => { characterInstance.InJail(); }); multiAudioClip.audioSources[2].Play(); } else if (tileType == Tile.TileType.Warp) { //FIXME : Add warp code! //warp tiles are NOT used. Debug.Log("This Tile is Portal!"); } else { // Debug.Log("Default Tile."); } } return(returnRun); }