mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-07-06 02:02:12 +08:00
feat(饲料系统): 实现基于品质权重的饲料卡牌生成逻辑
添加 ArrayTool 工具类用于数组操作 在 FeedName 中增加 weight 方法获取品质权重 修改 MakeFeed 的卡牌生成逻辑,根据品质权重进行随机选择
This commit is contained in:
@@ -54,12 +54,20 @@ func finish():
|
|||||||
func regenerateCards():
|
func regenerateCards():
|
||||||
updateValue()
|
updateValue()
|
||||||
clearCards()
|
clearCards()
|
||||||
var feeds: Array[Feed] = []
|
var feeds = generateCardByQuality()
|
||||||
for i in avaliableFeeds.get_children():
|
for feed in feeds:
|
||||||
feeds.append(i)
|
|
||||||
feeds.shuffle()
|
|
||||||
for i in range(UIState.player.fields[FieldStore.Entity.FEED_COUNT_SHOW]):
|
|
||||||
var feed = feeds[i] as Feed
|
|
||||||
feed.show()
|
feed.show()
|
||||||
avaliableFeeds.remove_child(feed)
|
avaliableFeeds.remove_child(feed)
|
||||||
feedCards.add_child(feed)
|
feedCards.add_child(feed)
|
||||||
|
func generateCardByQuality():
|
||||||
|
var feeds = []
|
||||||
|
for i in range(len(avaliableFeeds.get_children())):
|
||||||
|
var feed = avaliableFeeds.get_children()[i] as Feed
|
||||||
|
for j in range(feed.nameLabel.weight()):
|
||||||
|
feeds.append(i)
|
||||||
|
var result = []
|
||||||
|
for i in range(UIState.player.fields[FieldStore.Entity.FEED_COUNT_SHOW]):
|
||||||
|
feeds.shuffle()
|
||||||
|
result.append(avaliableFeeds.get_children()[feeds[0]])
|
||||||
|
feeds = ArrayTool.removeAll(feeds, feeds[0])
|
||||||
|
return result
|
||||||
|
|||||||
@@ -45,3 +45,5 @@ func _physics_process(_delta):
|
|||||||
nameLabel.text = "[b]%s[/b]" % displayName
|
nameLabel.text = "[b]%s[/b]" % displayName
|
||||||
func color():
|
func color():
|
||||||
return qualityColorMap[quality] as Color
|
return qualityColorMap[quality] as Color
|
||||||
|
func weight() -> float:
|
||||||
|
return qualityRandomWeight[quality]
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
class_name ArrayTool
|
||||||
|
|
||||||
|
static func removeAll(array: Array, value) -> Array:
|
||||||
|
var result = []
|
||||||
|
for item in array:
|
||||||
|
if item != value:
|
||||||
|
result.append(item)
|
||||||
|
return result
|
||||||
Reference in New Issue
Block a user