I see, so deletion doesn't actually remove cpoint, interesting.
Its not feasible to prevent non-type0 from exiting the boundaries. You'd basically need to spawn itr kind 14 on both sides of the stage, and even then its not going to sufficient because the way itr kind 14 stops movement is highly flawed.
In that case, the solution would be for the heavy weapon to release the character when it is thrown;
this is feasible since on_hand frames are different from in_the_sky frames.
The tradeoff is that every character has to have the same throw strength (if you need variation, you will need more heavy weapons; fortunately only Mark & LouisEX have a different throw_lying_man strength).
---
EDIT:
Crap, I forgot about getting injured while holding heavy weapon. Different solution required:
* During throw, bring heavy weapon to a new on_hand frame (you can have multiple different ones for each char if you need variation in throw strength).
* In this new frame, heavy weapon will opoint kind 2 some random weapon, forcing itself off the character's grip.
* This allows heavy weapon to go to next, which throws the enemy.
IMPORTANT: delete the heavy weapon, otherwise the game will still think the character is holding a heavy weapon permanently.
Tradeoff for both above methods: You cannot aim the throw along z-axis.
-----
EDIT2:
Last option if you want to keep z-axis throw:
* Make the heavy weapon hold another weapon(can be non-weapon type) BEFORE it gets picked up by the player.
* If you are using a weapon type, make sure it is held above ground by wpoint.
* The idea is, when the heavy weapon gets deleted, the other weapon it is holding is not yet deleted but is allowed to go to 'next'. This will interact with the thrown enemy and cancel his cpoint frame.
Note: unfortunately it is not possible for this other weapon to be the one catching the enemy as a way to resolve the cpoint bugs, because you can't make the heavy weapon pick things up, only directly opoint kind 2 into its hand.
-----
Cpoint position switching is unavoidable as long as your hitboxes(itr + bdy) both need to be bigger than 1px. Ultimately, cpoint works by checking the 2 chars' x-positions and moving to the midpoint between them (I'm not sure about y-position, but z-position it will always move the victim to the catcher's).
Here's a pinned message from Discord for some numbers I've tested that might help though:
Quote:Alright, I found some perfect x-axis situations. assume all values use centerx39 centery79
Ax=100, Bx=100. ik1 must hold back.
A fr120 cx39, ck1 x38
B fr131 cx39, ck2 x40
End result is both remain at 100/100. grab faces right.
---
Ax=100, Bx=100. ik1 must hold back.
A fr120 cx39, ck1 x38
B fr131 cx39, ck2 x41
End result is both remain at 100/101. grab faces right.
---
Ax=100, Bx=101. no need to hold back.
A fr120 cx39, ck1 x39
B fr131 cx39, ck2 x40
End result is both remain at 100/101. grab faces right.
---
assuming cpoint cover: 20 (enemy faces towards you, and is 1px above your z-axis), his y is actually +1 of whatever you plan to have.
its the same appearance compensation logic as wpoint cover: 1.
when cpoint timer=0 and decrease <0, release speed is x=4, y=-3.
when stopping cpoint (such as by Grab+DvA), release into fr212 at a MINIMUM of y: -2, with speed -3. exact y-coordinate only increases if -3 or higher. no change in x-axis.