randovania / randomprime

Prime1 patcher for Randovania and a few other things.
MIT License
2 stars 3 forks source link

Incorrect position for custom door locks and invisible background texture. #62

Open MrMiguel211 opened 4 months ago

MrMiguel211 commented 4 months ago

Position

Currently the way blast shields are placed on doors is to be placed on the exact same coordinates of the glow ring Actor, and then have a position offset based on that. This is wrong, they are supposed to have the coordinates of the door, as they were designed that way, not only it looks ugly, this implementation causes rotated doors to have the blast shields be displaced.

GM8E01_2024-06-08_13-33-58 GM8E01_2024-06-08_13-34-04 GM8E01_2024-06-08_13-44-13 GM8E01_2024-06-08_13-44-49

Ceiling/Floor doors

These doors use an ANCS different from regular doors, not only that they are slightly bigger in size, because there is no dedicated blast shield actor for them, they would not fit properly at all by just copying the door's position/rotation values, the added offset is required for them.

Currently Besides having incorrect scaling values added to them, they are in the wrong position with the wrong rotation. An ideal scaling for them would be [1.1776, 1.8, 1.8] instead of [1.6, 1.6, 1.6] and rotated accordingly to the cardinal direction the door is at.

Background texture

The hit detection trigger gets deactivated on room load via a 1 frame auto-start timer so they can't be shot, this causes the side effect of the moving cloud texture not being visible.

This can be solved in two ways:

  1. Instead of the 1 frame timer sending DEACTIVATE to the damageable trigger, make it send INCREMENT instead, this will cause the dtrigger to become invulnerable, then make it receive DECREMENT when both the blast shield actor breaks or when the door gets OPENed from the other side and it will cause the dtrigger to become vulnerable again.
  2. *Make the Blast Shield Actor have the IsSolid flag true, and edit the CollisionBox and CollisionOffset so they surround the damageable trigger entirely and cause it to never be able to be shot in any way. This also removes the need to use the helper damageable trigger that takes care of the actual thing to shoot at to open the door, though if the lock-on behavior is intended to be kept, it could be made so it's vulnerabilities are PassThrough so it can hit the blast shield.

Make an exception for Hall of the Elders floor door as it will cause the statue to get stuck. 6/13/24 edit: If done correctly this shouldn't happen, so the actor can stay solid here.