Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

oBattle step event code:

battleState();

//Cursor control

if (cursor.active)

{

with (cursor)

{

//input

var _keyUp = keyboard_check_pressed(vk_up);

var _keyDown = keyboard_check_pressed(vk_down);

var _keyLeft = keyboard_check_pressed(vk_left);

var _keyRight = keyboard_check_pressed(vk_right);

var _keyToggle = false;

var _keyConfirm = false;

var _keyCancel = false;

confirmDelay++

if (confirmDelay > 1)

{

_keyConfirm = keyboard_check_pressed(vk_enter);

_keyCancel = keyboard_check_pressed(vk_escape);

_keyToggle = keyboard_check_pressed(vk_shift);

}

var _moveH = _keyRight - _keyLeft;

var _moveV = _keyDown - _keyUp;

if (_moveH == -1) targetSide = oBattle.partyUnits;

if (_moveH == 1) targetSide = oBattle.enemyUnits;

//verify target list

if (targetSide == oBattle.enemyUnits)

{

targetSide = array_filter(targetSide, function(_element, _index)

{

return _element.hp > 0;

});

}

//move between targets

if (targetAll == false) //Single target mode

{

if (_moveV == 1) targetIndex++;

if (_moveV == -1) targetIndex--;

//wrap

var _targets = array_length(targetSide);

if (targetIndex < 0) targetIndex = _targets - 1;

if (targetIndex > (_targets - 1)) targetIndex = 0;

//identify target

activeTarget = targetSide[targetIndex];

//toggle all mode

if (activeAction.targetAll == MODE.VARIES) and (_keyToggle) //switch to all mode

{

targetAll = true;

}

}

else //target all mode

{

activeTarget = targetSide;

if (activeAction.targetAll == MODE.VARIES) and (_keyToggle) //switch to single mode

{

targetAll = false;

}

}

//Confirm action

if (_keyConfirm)

{

with (oBattle) BeginAction(cursor.activeUser, cursor.activeAction, cursor.activeTarget);

with (oMenu) instance_destroy();

active = false;

confirmDelay = 0;

}

//Cancel and return to menu

if (_keyCancel) and (!_keyConfirm)

{

with (oMenu) active = true;

active = false;

confirmDelay = 0;

}

}

}