36 lines
1.2 KiB
Plaintext
36 lines
1.2 KiB
Plaintext
function get_random_weapon() {
|
|
// Get array of weapon keys
|
|
var weapon_keys = variable_struct_get_names(global.WeaponList);
|
|
var available_weapons = array_create(0);
|
|
|
|
// Filter out weapons the player already has
|
|
for (var i = 0; i < array_length(weapon_keys); i++) {
|
|
var weapon_key = weapon_keys[i];
|
|
var weapon = variable_struct_get(global.WeaponList, weapon_key); // FIXED THIS LINE
|
|
|
|
// Check if player already has this weapon
|
|
var already_has = false;
|
|
for (var j = 0; j < array_length(global.PlayerWeapons); j++) {
|
|
if (global.PlayerWeapons[j].name == weapon.name) {
|
|
already_has = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!already_has) {
|
|
array_push(available_weapons, weapon);
|
|
}
|
|
}
|
|
|
|
// If there are available weapons, pick one randomly
|
|
if (array_length(available_weapons) > 0) {
|
|
var random_index = irandom(array_length(available_weapons) - 1);
|
|
var new_weapon = available_weapons[random_index];
|
|
|
|
// Add to player's inventory
|
|
array_push(global.PlayerWeapons, new_weapon);
|
|
return new_weapon;
|
|
}
|
|
|
|
return undefined;
|
|
} |