104 lines
3.9 KiB
TypeScript
104 lines
3.9 KiB
TypeScript
// noname内扩展的一些array方法:
|
||
declare interface Array<T> {
|
||
/**
|
||
* @deprecated 已废弃,请使用includes
|
||
*/
|
||
contains(item: T): boolean;
|
||
/**
|
||
* 添加任意元素进数组中
|
||
* @param args
|
||
* @returns
|
||
* 1. 当添加成功时,返回此数组
|
||
* 2. 添加失败(已有此元素)时返回false,若传入多个参数,且添加失败时,后面的元素不再进行添加操作
|
||
*/
|
||
add(...args: T[]): this | false;
|
||
/**
|
||
* 添加一个数组的所有元素到该数组中(循环执行this.add),此时参数arr中若有一个数组元素可能会出现bug
|
||
* @param arr
|
||
*/
|
||
addArray(arr: T[]): this;
|
||
/**
|
||
* 移除一个元素出该数组(该元素不能是数组)
|
||
* @param item
|
||
* @returns
|
||
* 1. 当移除成功时,返回此数组
|
||
* 2. 移除失败(没有此元素)时返回false
|
||
* 3. 传入参数为一个数组时,返回undefined
|
||
*/
|
||
remove(item: T): this | false;
|
||
|
||
remove(item: T[]): void;
|
||
/**
|
||
* 将一个数组的所有元素移除出该数组(循环执行this.remove),此时参数arr中若有一个数组元素可能会出现bug
|
||
* @param arr
|
||
*/
|
||
removeArray(arr: T[]): this;
|
||
/**
|
||
* 随机获得该数组的一个元素
|
||
* @param args 设置需要排除掉的部分元素;
|
||
*/
|
||
randomGet(...args: T[]): T;
|
||
/**
|
||
* 随机移除数组的一个/多个元素
|
||
* @param num 若num为数字的情况下,则移除num个元素,否则移除一个
|
||
* @returns
|
||
* 1. 移除一个元素,只返回被移除的元素
|
||
* 2. 移除多个元素,返回一个被移除元素组成的数组
|
||
* 3. 数组无元素返回undefined
|
||
*/
|
||
randomRemove(num: number): T | T[];
|
||
randomRemove(num: T): T | undefined;
|
||
/**
|
||
* 随机重新排序数组(数组乱序)
|
||
*/
|
||
randomSort(): this;
|
||
/**
|
||
* 随机获取数组的元素
|
||
*
|
||
* 返回的是一个重新整合的数组
|
||
* @param num 获取的数量, 不传参视为0
|
||
*/
|
||
randomGets(num?: number): this;
|
||
/**
|
||
* 对所有玩家进行排序
|
||
*
|
||
* 其排序,使用的是lib.sort.seat方法,按座位排序
|
||
* @param target 目标玩家
|
||
*/
|
||
sortBySeat(target?: Player): Player[];
|
||
/**
|
||
* 将一个Array中所有位于处理区的卡牌过滤出来
|
||
*
|
||
* 例:设一list为[c1,c2,c3,c4],其中c1和c3是位于处理区的卡牌
|
||
* 那么list.filterInD()得到的结果即为[c1,c3]
|
||
*
|
||
* 在1.9.97.8.1或更高的版本中:
|
||
* 可通过直接在括号中填写一个区域 来判断处于特定区域的卡牌
|
||
* 例:list.filterInD('h') 即判断数组中所有位于手牌区的卡牌
|
||
* @param poiston 指定的区域,默认是 'o'
|
||
*/
|
||
filterInD(poiston?: string): Card[];
|
||
|
||
//关于处理区:
|
||
/*
|
||
不知道处理区是什么的同学们 请自行查阅凌天翼规则集相关内容太长了我懒得贴
|
||
处理区在无名杀的代码为ui.ordering
|
||
为方便兼容旧扩展 使用get.position(card)方法读取处理区的卡牌 默认得到的仍然是弃牌堆('d')
|
||
使用get.position(card,true) 才会得到处理区('o')的结果
|
||
|
||
处理区:(不清楚无名杀对其的实验是否满足这些要求)
|
||
一个最常被用到,但是尚未命名的区域。
|
||
当你使用一张牌等待结算或处于结算中,
|
||
当你和另一名角色拼点的两张牌失去时,
|
||
当你和另一名角色交换的牌失去时,
|
||
当你的牌被张辽或张郃搞的失去时……
|
||
总之,当一张牌不在任何角色的手牌、装备区或判定区里,
|
||
也不在牌堆或弃牌堆里,也没有被移出游戏,那么它就是在这个尚未命名的区域里。
|
||
为了便于行文,在本规则与FAQ集中暂且称之为‘处理区’。
|
||
*/
|
||
|
||
/**
|
||
* 获取 item 在数组中出现的次数
|
||
*/
|
||
numOf(item: T): number
|
||
} |