Open nsmryan opened 3 years ago
The grass wall skill has a variation of this- if you walk into a grass wall diagonally, which tiles should break? Currently it acts as if you moved in a certain pattern using non-diagonal moves.
For example, upleft acts as if you moved up and then left. Similarly, crumble could break down a wall above you and above and to the left, but not to the left of the original tile. This would create at least a consistent answer. It would mean that crumbling intertile walls along diagonals can destroy two walls, where it can usually only crumble one.
This is a tough decision. I feel that players may consider it a bug. However, it may be that, just in this specific case, we could animate the character going up and then left, instead of just diagonal. This would show clearly what is happening. It might be confusing at first, but perhaps players would understand why the character is not squeezing between the walls?
When looking at the Crumble I realized that there are a number of variations of this idea.
First, apparently I had already added it, calling it Rubble. This skill checked for walls between you and the targeted tile, and turns the first one to rubble. If the path was blocked by an intertile wall, it turned that wall to rubble.
This seems to make some sense- you shouldn't be able to crush a wall behind another wall. The skill could also have a range of one to help with this.
While I think that this implementation is mostly fine, there is a question of intertile walls. and diagonal. If you use the skill up and too the right the intertile walls to consider are: the horizontal wall just above the player, the vertical wall to the right of the player, and the vertical wall one tile up and to the right. This is because any one of these walls if kind of in the way of the movement to that location, although they would only block if there were two such walls. For example a corner where the point is just up and to the right would block the player, or two vertical walls above to the player, or two horizontal walls next to the player. In these cases, we could try to detect all of these walls. If we do, then where does the rubble occur? If you use the skill in the up and right diagonal, and there are two horizontal walls above you, it seems like each should create rubble?
The other option here is to restrict to up/left/down/right directions and forget all the different cases. This works, but it is not currently expressed in the cursor movement system. Since skill don't use the use-mode system, the locations you choose are not restricted by distance or validity. Also, the game doesn't know if you selection is valid until you make it- cursor mode is not specific to the action like use-mode is. It seems like something to discuss. We can always put a red outline and make a negative sound to indicate a failure in these cases.