Cow_Life_Sim_RPG/ItemGeneration/BoneGenerator.gd

41 lines
1.2 KiB
GDScript

extends RefCounted
class_name BoneGenerator
const boneClasses = ["res://Items/Natural/Bones/CrystalBone.gd",
"res://Items/Natural/Bones/DirtBone.gd",
"res://Items/Natural/Bones/HauntedBone.gd",
"res://Items/Natural/Bones/LicoriceBone.gd",
"res://Items/Natural/Bones/ParallelogramBone.gd",
"res://Items/Natural/Bones/PretzelBone.gd",
"res://Items/Natural/Bones/RedbyBone.gd",
"res://Items/Natural/Bones/RexBone.gd",
"res://Items/Natural/Bones/RockBone.gd",
"res://Items/Natural/Bones/SquareBone.gd",
"res://Items/Natural/Bones/ZucchiniBone.gd"]
const boneOdds = [2, 20, 10, 10, 4, 10, 2, 1, 20, 10, 10]
const boneXpRewards = [320, 4, 70, 24, 44, 9, 435, 1500, 6, 40, 38]
static func get_a_bone():
var rng = RandomNumberGenerator.new()
var rngResult = rng.randi_range(1, 99)
var chancesChecked = 0
for boneIndex in range(boneOdds.size()):
var currentBoneChance = boneOdds[boneIndex]
chancesChecked += currentBoneChance
if chancesChecked >= rngResult:
var boneToGenerate = load(boneClasses[boneIndex]).new()
return boneToGenerate
static func get_xp_reward_for_bone(bone):
var bonePath = bone.get_script().resource_path
for i in range(boneClasses.size()):
var currentPath = boneClasses[i]
if bonePath == currentPath:
return boneXpRewards[i]