Bug: When dead or stunned, held items do not fly out of player's hands as (I beleive) Derek intended due to duplicate code in the same step.
Location 1:
oPlayer1 > Step Event, first 'Execute a piece of code' block, line 330
Old:
if (holdItem)
{
if (holdItem.type == "Bow" and bowArmed)
{
scrFireBow();
}
holdItem.visible = true;
holdItem.held = false;
if (holdItem.type == pickupItemType)
{
holdItem = 0;
pickupItemType = "";
}
else scrHoldItem(pickupItemType);
//holdItem = 0;
//pickupItemType = "";
}
New:
if (holdItem)
{
if (holdItem.type == "Bow" and bowArmed)
{
scrFireBow();
}
holdItem.visible = true;
holdItem.held = false;
if (holdItem.type == "Arrow")
{
holdItem.safe = true;
holdItem.alarm[2] = 30;
}
holdItem.xVel = xVel;
holdItem.yVel = -3;
if (holdItem.type == "Damsel")
{
holdItem.status = 2;
holdItem.counter = 120;
}
if (holdItem.type == pickupItemType)
{
holdItem = 0;
pickupItemType = "";
}
else scrHoldItem(pickupItemType);
}
Location 2:
oPlayer1 > Step Event, first 'Execute a piece of code' block under the 'Hurt' section
Comment out or delete the following code (lines 233-255):
if ((dead or stunned) and holdItem != 0)
{
holdItem.held = false;
holdItem.xVel = xVel;
holdItem.yVel = -6;
holdItem.armed = true;
if (holdItem.type == "Damsel")
{
holdItem.status = 2;
}
else if (holdItem.type == "Bow")
{
scrFireBow();
}
if (holdItem.type == pickupItemType)
{
holdItem = 0;
pickupItemType = "";
}
else scrHoldItem(pickupItemType);
}
Comments: This includes the fix listed previously for the bug where player takes damage from the arrow he is was holding when hit by another arrow.
Bug: When playing as the damsel and climbing the rope to exit on the title screen, sprite reverts back to main dude.
Location:
oPDummy5 > Create Event, line 5
Old:
if (global.isTunnelMan) sprite_index = sTunnelClimb2;
New:
else if (global.isTunnelMan) sprite_index = sTunnelClimb2;
Bug: If you launch a rope up with the rope hotkey while holding a damsel and falling downwards, it will damage her.
Location:
oRopeThrow > Create Event
Add the following lines:
safe = true;
alarm[2] = 30;
Bug: Kapala continues to collect blood when player is dead.
Location:
oPlayer1 > Collision with oBlood Event, line 1
Old:
if (global.hasKapala and other.collectible)
New:
if (global.hasKapala and other.collectible and not dead)
Comment: Has no effect on gameplay since you are already dead, but doesn't make much sense. To see this in action, die on spikes with the kapala, and you will endlessly collect your own blood, generating hearts.
Bug: Breaking jars with the whip produces double amount of contents.
Location:
oJar > Collision with Whip Event
Delete all the code and replace it with:
instance_destroy();
Comment: Duplicate code. Jar contents are generated in the Destroy event.
Bug: Compass doesn't work in custom levels.
Location:
scrLoadLevel
Insert the following after line 104:
if (obj)
{
global.exitX = obj.x;
global.exitY = obj.y;
}
Bug: Stunned shopkeeper wakes up when whipped.
Locations:
oShopkeeper > Collision with oWhip Event, and Collision with oWhipPre Event
Change line 18 in both events to:
if status < STUNNED status = ATTACK;
Bug: Arrows on the ground always face right.
Location:
oArrow > Step Event, line 18
Old:
else if (not stuck) direction = 0;
New:
else if (not stuck)
{
if direction > 90 and direction < 270 direction = 180
else direction = 0;
}
Annoyance: Accidentally picking up the die that has already been rolled (especially when they overlap) in the craps game angers the shopkeeper. Avoiding overlap by cautiously dropping the dice instead of flinging them around the room is no fun. This fix prevents the first rolled die from being able to be picked up until you finish the craps game by rolling the second die.
Location 1:
oDice > Step Event, line 219
Old:
if (rolling and yVel == 0)
{
if (rolled) scrShopkeeperAnger(0); // NO CHEATING!
rolled = true;
rolling = false;
}
New:
if (rolling and yVel == 0)
{
if (rolled) scrShopkeeperAnger(0); // NO CHEATING!
rolled = true;
canPickUp = false;
rolling = false;
}
Location 2:
oShopkeeper > Step Event, line 160
Old:
if (not rolled) global.diceRolled = false;
New:
if (not rolled) { global.diceRolled = false; canPickUp = true; }
Location 3:
oShopkeeper > Step Event, line 220
Old:
with oDice { rolled = false; }
New:
with oDice { rolled = false; canPickUp = true;}