AssetsTD - 基于你的资产持仓自动运行的无限塔防游戏

# AssetsTD

一个基于资产持仓的无限塔防游戏。

An infinite tower defense game based on asset holdings.

[直接来玩](https://atd.getjoy.net)


### UI

首页:可以创建本地ID,也可以连接钱包,那么钱包地址就是你的ID。

管理:

* 数据只保存于浏览器的 IndexedDB

* 资产的数量和价格随意填,不需要验证。

* 你的ID计算blake2b转换成32 bytes作为你的DNA,像素小人就是基于DNA生成的。ref: [Pixel Hero]( Pixel Studio - GenAI Game Assets )

游戏:

* 全程自动化。

* 想参与,只能控制Hero/像素小人(前提是你在管理页面设置了BTC持仓)。

### 概念

1. 你的财库就是基地。财库的生命力掉到0,游戏失败;否则无限塔防

2. 杀掉怪物掉落1个GD(Gold Dust)

### 怪物

每种怪物类型都有一个传送门,但是传送门出来的怪物是随机的。

1. 类型:

* 法币 (Fiat):

\* 生命力为1-9;

\* 速度100;

\* 特点:随机游走;

\* 形象:绿色的美元纸币。

* 通货膨胀 (Inflation):

\* 生命力为10-70

\* 速度100;

\* 特点:生命值每秒增加5%;

\* 形象:政府

* 消费 (Consumption):

\* 生命力为60;

\* 速度120;

\* 特定:生命力每秒降低1点;

\* 形象:购物车🛒

* 虚荣心 (Vanity):

\* 生命力为1-123;

\* 速度80;

\* 特点:闪闪发光;

\* 形象:❤️

* 傲慢 (Arrogance):

\* 生命力为690;

\* 速度50;

\* 特点:形体每秒钟增大1%;

\* 形象:钻石王冠或帝王

* 贪婪 (Greed):

\* 生命力为420;

\* 速度50;

\* 特点:可以吞噬附近50范围内的所有怪物的生命力,被吞噬的怪物直接死亡;

\* 形象:金色的钱袋💰

* 恐慌 (Panic):

\* 生命力为1-100;

\* 速度80;

\* 特点:影响范围100,对所有塔和英雄增加3秒钟的 debuff:攻击速度降低10%;

\* 形象:红色的人脸

* 骇客 (Hacker):

\* 生命力为1-9;

\* 速度200;

\* 特点:行动路径不是直线,而是螺旋曲线;

\* 形象:绿色代码

* RugPull:

\* 生命力为1-100;

\* 速度100;

\* 特点:被击杀时有10%概率在出生点传送门重生;

\* 形象:悬浮的波斯地毯。

2. 怪物基础:攻击力为1~10的随机值,生命力为1-100的随机值,初始移动速度100,攻击速度1。

\* 怪物对财库的攻击,引入概率机制:

\* 80% 的概率,怪物对财库造成 enemy.damage \* this.currentLeverage 伤害,此时不触发屏幕抖动;

\* 20%的概率,怪物对财库造成 enemy.hp \* this.currentLeverage 自爆伤害,触发屏幕抖动,怪物死亡。

3. 怪物无法升级,但是每存活1秒,攻击力、生命力和移动速度都增加1%。

4. 游戏开始,3秒刷新一个怪物,1分钟后2秒刷新一个怪物,2分钟后每秒刷新一个怪物

### Coins 防御塔

1. 一个币种就是一个防御塔

2. 假设某个币的价格p,持仓量 h

3. 把coin tower的逻辑独立出来,并给塔增加如下属性:

* 攻击力:attack = [(7 - p的小数位数) × K₂] + [p末位数字 × K₃] * 杠杆倍数

\* 如果触发暴击:攻击力再乘以1.5,并弹出气泡“to the moon”

* 攻击范围:range = 100 + [log₁₀(持仓量h) × 50] + [p的小数位数 × 15] + [√持仓量/1000]

* 攻击速度:aps = max( 0.2, 1.5 - [p小数位数 × 0.15] + [log₁₀(持仓量h) × 0.05] )

* 暴击几率:crit = min( [p的小数位数 × 2.5] + [K₄ / 持仓量h的前两位数字] , 50 ) (百分比)

* 系数:K₁=3, K₂=5, K₃=1, K₄=10

### 特殊防御塔

* 健康塔(Health Tower):功能:每秒钟恢复1点财库当前的HP,但不能超过Max HP

* 修行塔:外观:冥想的人。功能:每秒钟对全地图上所有怪物伤害1

* 家庭塔(Home Tower):外观:家。功能:每隔10秒,可以对一个随机coin tower加速3秒钟,攻击速度提高10%

* 赞助商塔(Sponsor Tower):外观:赞助商的logo,暂定BTC的logo。功能:每10秒钟增加1点财库的Max HP

### 英雄Hero

仅仅基于BTC的持仓生成英雄角色。

* 生命值:hp = 基础值100+ [log₁₀(价格 + 1) × 50] + [log₁₀(持仓量 + 1) × 150] - [小数位数 × 10]

* 攻击力:attack = [BTC价格 ÷ 1000] + [log₁₀(BTC持仓量) × 5] + [小数位数 × 2]

* 攻击范围:range = 100 + [BTC价格 ÷ 10000] + [BTC持仓量 × 100]

* 攻击速度:aps = 2.0 - [BTC价格 ÷ 50000] + [log₁₀(BTC持仓量) × 0.2]

* 暴击几率:crit = min( [BTC价格小数位数 × 5] + [持仓量末两位数字 ÷ 2] , 40 ) (百分比)

* hero出生地默认在USD/USDT/USDC一类的稳定币塔旁边

* hero 死亡后,倒计时30秒复活;等级保留。

* 形象:像素小人

* 攻击的可视化:比特币Logo的光球

* 控制:键盘上下左右移动;自动攻击

* 花费10GD可以升级生命值/攻击力/攻击范围/攻击速度 的某一项,升级增加1%相关属性。

### 其它

1. 杠杆 slider

* 取值范围从1~100,表示 杠杆交易 (Leverage Risk) :x 倍数,高收益高风险。

* 效果:塔的攻击力和怪物对堡垒的伤害都乘以 x

* 游戏画布的杠杆效果:

* 杠杆小于20,正常显示

* 杠杆 [20, 60),游戏画布的周围闪烁橙色光芒(警告)

* 杠杆 [60, 100],游戏画布的周围闪烁红色光芒(严重警告)

6 Likes

Very clean implementation! :clap::clap:

1 Like