Restricted Petal Spawns to unique items
This commit is contained in:
parent
07b5114f23
commit
8f2a1146f0
2 changed files with 7 additions and 5 deletions
|
|
@ -10,26 +10,25 @@ static var item_pool = ResourceLoader.load("res://items/generic/item_pool.tres",
|
||||||
@export var unique_bonus_multiplier = .05
|
@export var unique_bonus_multiplier = .05
|
||||||
@export var rare_bonus_multiplier = 0
|
@export var rare_bonus_multiplier = 0
|
||||||
|
|
||||||
@export var spawn_petal = true
|
@export var spawn_petal = false
|
||||||
@export var petal_scene : PackedScene = ResourceLoader.load("res://petal.tscn")
|
@export var petal_scene : PackedScene = ResourceLoader.load("res://petal.tscn")
|
||||||
|
|
||||||
var remove_after_spawn = false
|
var remove_after_spawn = false
|
||||||
|
|
||||||
# Choose the item pool this spawn location draws from
|
# Choose the item pool this spawn location draws from
|
||||||
func choose_pool() -> Array[PackedScene]:
|
func choose_pool() -> Array[PackedScene]:
|
||||||
|
#spawn_petal = false
|
||||||
var unique_chance = unique_base_chance + unique_bonus_multiplier * rarity_bonus
|
var unique_chance = unique_base_chance + unique_bonus_multiplier * rarity_bonus
|
||||||
var rare_chance = rare_base_chance + rare_bonus_multiplier * rarity_bonus
|
var rare_chance = rare_base_chance + rare_bonus_multiplier * rarity_bonus
|
||||||
|
|
||||||
var random = randf()
|
var random = randf()
|
||||||
if random < unique_chance && item_pool.unique.size() > 0:
|
if random < unique_chance && item_pool.unique.size() > 0:
|
||||||
# Unique items are removed from the pool when picked
|
# Unique items are removed from the pool when picked and spawn a petal
|
||||||
remove_after_spawn = true
|
remove_after_spawn = true
|
||||||
|
spawn_petal = true
|
||||||
return item_pool.unique
|
return item_pool.unique
|
||||||
elif random < unique_chance + rare_chance || guarantee_rare:
|
elif random < unique_chance + rare_chance || guarantee_rare:
|
||||||
return item_pool.rare
|
return item_pool.rare
|
||||||
|
|
||||||
# If an item is common, no petal spawns
|
|
||||||
spawn_petal = false
|
|
||||||
return item_pool.common
|
return item_pool.common
|
||||||
|
|
||||||
# Places a petal holding this item
|
# Places a petal holding this item
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ signal opened
|
||||||
var img_path
|
var img_path
|
||||||
@export var depth : int
|
@export var depth : int
|
||||||
|
|
||||||
|
# Triggers when a bud is hit. Spreads the vine, then removes the bud
|
||||||
func _on_opened():
|
func _on_opened():
|
||||||
$AnimatedSprite2D.play("open")
|
$AnimatedSprite2D.play("open")
|
||||||
opened.emit()
|
opened.emit()
|
||||||
|
|
@ -10,11 +11,13 @@ func _on_opened():
|
||||||
await $AnimatedSprite2D.animation_finished
|
await $AnimatedSprite2D.animation_finished
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
# Spread in all directions where the given vine is not yet present
|
||||||
func spread():
|
func spread():
|
||||||
for dir in [Vector2.UP, Vector2.DOWN, Vector2.RIGHT, Vector2.LEFT]:
|
for dir in [Vector2.UP, Vector2.DOWN, Vector2.RIGHT, Vector2.LEFT]:
|
||||||
if not vine.vine_locations.has(Global.vec_mod(location + dir, Grid.num_collumns)):
|
if not vine.vine_locations.has(Global.vec_mod(location + dir, Grid.num_collumns)):
|
||||||
grow_to_next_bud(dir)
|
grow_to_next_bud(dir)
|
||||||
|
|
||||||
|
# Grow a vine
|
||||||
func grow_to_next_bud(dir):
|
func grow_to_next_bud(dir):
|
||||||
var target_offset = vine.random_offset()
|
var target_offset = vine.random_offset()
|
||||||
var target = Global.vec_mod(location + dir, Grid.num_collumns)
|
var target = Global.vec_mod(location + dir, Grid.num_collumns)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue