Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问许可证需确认审计通过

godot-economy-system戈多经济系统

Agent Skill

godot-economy-system 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

2,521

周安装

104

GitHub Stars

137

下载量

824
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:godot-economy-system(戈多经济系统)
来源仓库:https://github.com/thedivergentai/gd-agentic-skills
仓库路径:skills/godot-economy-system
安装命令:
npx skills add https://github.com/thedivergentai/gd-agentic-skills --skill godot-economy-system
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/thedivergentai/gd-agentic-skills --skill godot-economy-system

简介

godot-economy-system 用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词、任务场景或来源线索快速定位候选结果。
  • 通过 npx skills add 命令从指定仓库安装并使用该技能。
  • 安装前需确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Economy System

Expert guidance for designing balanced game economies with currency, shops, and loot.

Available Scripts

currency_resource.gd

Specialized data container for defining distinct denominations (Gold, Gems, XP) with UI metadata.

wallet_manager_singleton.gd

Centralized AutoLoad orchestrator for managing balances and processing secure transactions.

shop_item_data.gd

Resource-based definition for purchasables, including pricing, currency types, and stock limits.

shop_system_logic.gd

Decoupled logic for handling buy/sell exchanges between the Wallet and Inventory systems.

dynamic_price_modifier.gd

Injection pattern for applying temporary discounts or markups based on world state (e.g. Sales).

currency_label_sync.gd

Reactive UI hook for automatically updating currency displays when balances change.

loot_drop_economy_bridge.gd

Bridge node for capturing loot events and adding funds to the player's wallet.

economy_persistence_handler.gd

Expert logic for serializing financial states into secure, loadable dictionaries.

currency_pickup_effect.gd

Visual feedback controller that triggers particles or animations upon financial gain.

trade_contract_resource.gd

Advanced barter system definition for multi-item "Quid Pro Quo" transactions.

NEVER Do in Economy Systems

  • NEVER use int for large-scale premium economies — Standard 32-bit integers cap at 2.1 billion. For massive quantities, use float or a custom BigInt structure [12].
  • NEVER forget to implement a Buy/Sell price spread — Allowing players to sell items for the same price they bought them creates infinite money exploits [13].
  • NEVER skip "Currency Sinks" — Without mandatory costs (repairs, taxes, consumables), the game economy will suffer from hyper-inflation [14].
  • NEVER perform currency validation only on the client — In multiplayer or persistent games, the server MUST be the source of truth for all financial transactions [15].
  • NEVER hardcode loot drop percentages inside scripts — Changing drop rates should not require a recompile. Use Resources or outside data files for easy balancing [16].
  • NEVER allow negative balances via underflow — Always check if current >= amount BEFORE subtracting. Negative gold can break logic and save files.
  • NEVER modify the wallet balance directly from the UI — The UI should only request a transaction. The WalletManager should decide if it's valid and update the state.
  • NEVER use floating point math for exact currency counts0.1 + 0.2 might equal 0.30000000000000004, leading to discrepancies. Use int for cents/smallest units.
  • NEVER ignore "Transaction Logs" in serious RPGs — If money disappears, you need a history of events to debug whether it was a bug or a legitimate game event.
  • NEVER give rewards without checking "Max Limit" — If a player is capped at 999,999 gold, adding 1,000 should result in 999,999, not a wrapped negative number.

Currency Manager

# economy_manager.gd (AutoLoad)
extends Node

signal currency_changed(old_amount: int, new_amount: int)

var gold: int = 0

func add_currency(amount: int) -> void:
    var old := gold
    gold += amount
    currency_changed.emit(old, gold)

func spend_currency(amount: int) -> bool:
    if gold < amount:
        return false

    var old := gold
    gold -= amount
    currency_changed.emit(old, gold)
    return true

func has_currency(amount: int) -> bool:
    return gold >= amount

Shop System

# shop_item.gd
class_name ShopItem
extends Resource

@export var item: Item
@export var buy_price: int
@export var sell_price: int
@export var stock: int = -1  # -1 = infinite

func can_buy() -> bool:
    return stock != 0
# shop.gd
class_name Shop
extends Resource

@export var shop_name: String
@export var items: Array[ShopItem] = []

func buy_item(shop_item: ShopItem, inventory: Inventory) -> bool:
    if not shop_item.can_buy():
        return false

    if not EconomyManager.has_currency(shop_item.buy_price):
        return false

    if not EconomyManager.spend_currency(shop_item.buy_price):
        return false

    inventory.add_item(shop_item.item, 1)

    if shop_item.stock > 0:
        shop_item.stock -= 1

    return true

func sell_item(item: Item, inventory: Inventory) -> bool:
    # Find matching shop item for sell price
    var shop_item := get_shop_item_for(item)
    if not shop_item:
        return false

    if not inventory.has_item(item, 1):
        return false

    inventory.remove_item(item, 1)
    EconomyManager.add_currency(shop_item.sell_price)
    return true

func get_shop_item_for(item: Item) -> ShopItem:
    for shop_item in items:
        if shop_item.item == item:
            return shop_item
    return null

Pricing Formula

func calculate_sell_price(buy_price: int, markup: float = 0.5) -> int:
    # Sell for 50% of buy price
    return int(buy_price * markup)

func calculate_dynamic_price(base_price: int, demand: float) -> int:
    # Price increases with demand
    return int(base_price * (1.0 + demand))

Loot Tables

# loot_table.gd
class_name LootTable
extends Resource

@export var drops: Array[LootDrop] = []

func roll_loot() -> Array[Item]:
    var items: Array[Item] = []

    for drop in drops:
        if randf() < drop.chance:
            items.append(drop.item)

    return items
# loot_drop.gd
class_name LootDrop
extends Resource

@export var item: Item
@export var chance: float = 0.5
@export var min_amount: int = 1
@export var max_amount: int = 1

Best Practices

  1. Balance - Test economy carefully
  2. Sinks - Provide money sinks (repairs, etc.)
  3. Inflation - Control money generation

Reference

  • Related: godot-inventory-system, godot-save-load-systems

Related

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.51%
按下载量换算293

Claude

32.73%
按下载量换算270

Cursor

18.36%
按下载量换算151

Gemini CLI

9.16%
按下载量换算75

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills