koishi-plugin-smmcat-gensokyo 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,125 @@
1
+ import { Context, Session } from "koishi";
2
+ import { Config } from ".";
3
+ declare module 'koishi' {
4
+ interface Tables {
5
+ smm_gensokyo_battle_history: BattleHistory;
6
+ }
7
+ }
8
+ /** 记录封存 */
9
+ type BattleHistory = {
10
+ userId: string;
11
+ target: string;
12
+ status: string;
13
+ tempData: {};
14
+ createTime: number;
15
+ };
16
+ /** 队伍信息 */
17
+ type TeamData = {
18
+ [keys: string]: {
19
+ for: string;
20
+ identity: '队员' | '队长';
21
+ };
22
+ };
23
+ export type BattleAttribute = {
24
+ /** 阵容 */
25
+ for?: 'self' | 'goal';
26
+ /** 等级 */
27
+ lv: number;
28
+ /** 单位名称 */
29
+ name: string;
30
+ /** 用户唯一标识 */
31
+ userId?: string;
32
+ /** 类型 */
33
+ type: '玩家' | '怪物';
34
+ /** 血量 */
35
+ hp: number;
36
+ /** 最大血量 */
37
+ maxHp: number;
38
+ /** 蓝量 */
39
+ mp: number;
40
+ /** 最大蓝量 */
41
+ maxMp: number;
42
+ /** 攻击力 */
43
+ atk: number;
44
+ /** 防御力 */
45
+ def: number;
46
+ /** 暴击率 */
47
+ chr: number;
48
+ /** 暴击抵抗 */
49
+ csr: number;
50
+ /** 暴击伤害 */
51
+ ghd: number;
52
+ /** 闪避值 */
53
+ evasion: number;
54
+ /** 命中值 */
55
+ hit: number;
56
+ /** 出手速度 */
57
+ speed: number;
58
+ /** 临时增益状态 */
59
+ gain: {
60
+ /** 临时增益-最大血量 */
61
+ maxHp: number;
62
+ /** 临时增益-最大蓝量 */
63
+ maxMp: number;
64
+ /** 临时增益-攻击力 */
65
+ atk: number;
66
+ /** 临时增益-防御力 */
67
+ def: number;
68
+ /** 临时增益-暴击率 */
69
+ chr: number;
70
+ /** 临时增益-暴击伤害 */
71
+ ghd: number;
72
+ /** 临时增益-闪避值 */
73
+ evasion: number;
74
+ /** 临时增益-命中值 */
75
+ hit: number;
76
+ /** 临时增益-出手速度 */
77
+ speed: number;
78
+ };
79
+ /** 滞留状态 */
80
+ buff: {
81
+ name: string;
82
+ time: number;
83
+ }[];
84
+ };
85
+ /** 最后战斗状态 */
86
+ type LastPlay = {
87
+ [keys: string]: {
88
+ self: BattleAttribute[];
89
+ goal: BattleAttribute[];
90
+ };
91
+ };
92
+ export declare const BattleData: {
93
+ config: Config;
94
+ ctx: Context;
95
+ historyTemp: BattleHistory;
96
+ lastPlay: LastPlay;
97
+ teamTemp: TeamData;
98
+ init(config: Config, ctx: Context): void;
99
+ /** 玩家是否正在战斗 */
100
+ isBattle(session: Session): boolean;
101
+ /** 玩家是否在队伍中 */
102
+ isTeam(session: Session): boolean;
103
+ /** 创建战斗-与怪物 */
104
+ createBattleByMonster(session: Session, goal: {
105
+ name: string;
106
+ lv: number;
107
+ }[]): Promise<void>;
108
+ /** 文本化当前战况 */
109
+ battleSituationTextFormat(team: {
110
+ self: BattleAttribute[];
111
+ goal: BattleAttribute[];
112
+ }): string;
113
+ /** 判断输赢 */
114
+ playOver(team: {
115
+ self: BattleAttribute[];
116
+ goal: BattleAttribute[];
117
+ }): {
118
+ over: boolean;
119
+ type: string;
120
+ };
121
+ /** 清理战场 */
122
+ clearBattleData(session: Session): void;
123
+ play(session: Session, atkType: "\u666E\u653B", select?: string): Promise<void>;
124
+ };
125
+ export {};
@@ -0,0 +1,51 @@
1
+ import { BattleAttribute } from "./battle";
2
+ type DamageCallback = {
3
+ before?: Callback;
4
+ beforRealHarm?: Callback;
5
+ evasion?: Callback;
6
+ csp?: Callback;
7
+ beforDef?: Callback;
8
+ };
9
+ /** 当前伤害回调函数 */
10
+ interface Callback {
11
+ (data: DamageConfig): void;
12
+ }
13
+ type DamageConfig = {
14
+ agent: {
15
+ self: BattleAttribute;
16
+ goal: BattleAttribute;
17
+ };
18
+ /** 实际伤害数据 */
19
+ harm: number;
20
+ /** 原始伤害数据 */
21
+ default_harm: number;
22
+ /** 是否为真实伤害 */
23
+ isRealHarm: boolean;
24
+ /** 是否闪避 */
25
+ isEvasion: boolean;
26
+ /** 是否暴击 */
27
+ isCsp: boolean;
28
+ /** 是否未破防 */
29
+ isBadDef: boolean;
30
+ };
31
+ declare class Damage {
32
+ config: DamageConfig;
33
+ constructor(agent: {
34
+ self: BattleAttribute;
35
+ goal: BattleAttribute;
36
+ }, realHarm?: boolean);
37
+ /** 伤害判定前 */
38
+ before(fn: (config: DamageConfig) => void): this;
39
+ /** 真实伤害判定 */
40
+ beforRealHarm(fn: (config: DamageConfig) => void): this;
41
+ /** 是否闪避判定 */
42
+ evasion(fn: (config: DamageConfig) => void): this;
43
+ /** 是否暴击判定 */
44
+ csp(fn: (config: DamageConfig) => void): this;
45
+ /** 防御结算 */
46
+ beforDef(fn: (config: DamageConfig) => void): this;
47
+ result(fn?: DamageCallback): DamageConfig;
48
+ }
49
+ /** 给予目标伤害 */
50
+ declare function giveDamage(self: BattleAttribute, goal: BattleAttribute, damage: DamageConfig): number;
51
+ export { Damage, giveDamage };
package/lib/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import { Context, Schema } from 'koishi';
2
+ export declare const name = "smmcat-gensokyo";
3
+ export declare const inject: {
4
+ required: string[];
5
+ };
6
+ export interface Config {
7
+ }
8
+ export declare const Config: Schema<Config>;
9
+ export declare function apply(ctx: Context, config: Config): void;