static/DragonCore/CommonItemTip.yml

161 lines
4.5 KiB
YAML

鼠标X偏移: 10
鼠标Y偏移: -7
# 5代表需要滚动五次才能看完所有的Lore
# 自适应 不会超过单页长度
滚动速度: 5
滚动提示: '鼠标滚动 查看更多信息'
match: ".*"
priority: -999
Functions:
# 1. 获取界面展示位置
# 2. 如果界面展示位置+界面高度超出屏幕距离
# 3. 如果界面超长了就压缩为 屏幕高度 - 60(上下预留30像素)
# 4. 如果调整位置之后 tip 距离鼠标过远 就调整为相差距离(方法.取鼠标Y - (方法.取屏幕高度 - 界面变量.高度))+30像素
# 4. 如果Lore超过界面长度 就调整为允许滚动 并且计算最大可滚动值和单次滚动距离(不超过单页长度)
# 5. 居中最底部的滚轮提示
open: |-
界面变量.鼠标X偏移 = 方法.取YAML值('鼠标X偏移');
界面变量.鼠标Y偏移 = 方法.取YAML值('鼠标Y偏移');
界面变量.滚动速度 = 方法.取YAML值('滚动速度');
界面变量.滚动提示 = 方法.取YAML值('滚动提示');
界面变量.滚动值 = 0;
界面变量.宽度 = 方法.min(lore.width, 方法.取屏幕宽度) + 12;
界面变量.高度 = 方法.min(lore.height, 方法.取屏幕高度) + 8;
界面变量.X = 方法.取鼠标X + 界面变量.鼠标X偏移;
界面变量.Y = 方法.取鼠标Y + 界面变量.鼠标Y偏移;
(界面变量.Y + 界面变量.高度 + 30) > 方法.取屏幕高度 ? {
界面变量.鼠标Y偏移 = -方法.取鼠标Y + 30;
(界面变量.鼠标Y偏移 + 界面变量.Y + 界面变量.高度) > 方法.取屏幕高度 ? {
界面变量.高度 = 方法.取屏幕高度 - 60;
} : {
界面变量.鼠标Y偏移 = - (方法.取鼠标Y - (方法.取屏幕高度 - 界面变量.高度) + 30);
};
} : 0;
lore.height > 界面变量.高度 ? {
界面变量.允许滚动 = true;
界面变量.最大可滚动值 = lore.height - 界面变量.高度 + 8;
界面变量.每次滚动距离 = 方法.min(界面变量.最大可滚动值 / 界面变量.滚动速度, 界面变量.高度 - 5);
tip.texts = 界面变量.滚动提示;
} : 0;
界面变量.提示X = (界面变量.宽度 - tip.width) / 2 + 界面变量.X;
# 1. 如果滚到头了就不允许滚动
# 2. 滚到尾部也不允许滚动
wheel: |-
界面变量.允许滚动 ? 0 : return 1;
界面变量.滚动距离 = 界面变量.滚动距离 - 方法.取滚轮值 * 界面变量.每次滚动距离;
界面变量.滚动距离 < 0 ? {
界面变量.滚动距离 = 0;
tip.texts = 界面变量.滚动提示;
} : {
界面变量.滚动距离 > 界面变量.最大可滚动值 ? {
界面变量.滚动距离 = 界面变量.最大可滚动值;
tip.texts = "";
} : 0;
};
preRender: |-
界面变量.X = 方法.取鼠标X + 界面变量.鼠标X偏移;
界面变量.Y = 方法.取鼠标Y + 界面变量.鼠标Y偏移;
界面变量.提示X = (界面变量.宽度 - tip.width) / 2 + 界面变量.X;
bg:
type: texture
x: 界面变量.X
y: 界面变量.Y
width: 界面变量.宽度
height: 界面变量.高度
texture: "tip/背景.png"
左边:
type: "texture"
x: "bg.x-2"
y: "bg.y+2"
width: "5"
height: "bg.height-4"
texture: "tip/左边.png"
上边:
type: "texture"
x: "bg.x+2"
y: "bg.y-2"
width: "bg.width-4"
height: "4"
texture: "tip/上边.png"
下边:
type: "texture"
x: "bg.x+2"
y: "bg.y+bg.height-2"
width: "bg.width-4"
height: "4"
texture: "tip/下边.png"
右边:
type: "texture"
x: "bg.x+bg.width-2"
y: "bg.y+2"
width: "4"
height: "bg.height-4"
texture: "tip/右边.png"
左上角:
type: "texture"
x: "bg.x-2"
y: "bg.y-2"
width: "5"
height: "5"
texture: "tip/左上角.png"
左下角:
type: "texture"
x: "bg.x-2"
y: "bg.y+bg.height-3"
width: "5"
height: "5"
texture: "tip/左下角.png"
右上角:
type: "texture"
x: "bg.x+bg.width-3"
y: "bg.y-2"
width: "5"
height: "5"
texture: "tip/右上角.png"
右下角:
type: "texture"
x: "bg.x+bg.width-3"
y: "bg.y+bg.height-3"
width: "5"
height: "5"
texture: "tip/右下角.png"
lore:
type: label
x: bg.x+5
y: bg.y+5-界面变量.滚动距离
texts: 界面变量.lines
limitX: bg.x
limitY: bg.y
limitWidth: bg.width
limitHeight: bg.height
tip下边:
type: "texture"
x: "tip.x"
y: "tip.y"
width: "tip.width"
height: "tip.height"
texture: "tip/背景.png"
tip:
type: label
x: 界面变量.提示X
y: bg.y + bg.height + 2
scale: 0.7
texts: ""