/**
* 更新日志
* 20230426:
* 1,增加修改建筑/部队建设支持的建筑API。CalcCityBuildFacilityTypes和CalcArmyBuildFacilityTypes
* 2,WidgetButton增加OnDrag方法。
* 3,PlayEffect中增加支持:
* army_move_by_path
* army_attack_normal
* army_attack_arch
* army_format
* 4,PlayEffect增加同步播放方式async=false
* 5,增加添加建筑API:AddFacility
* 6,增加“城市独立”API支持:DoCityIndpendcy
* 7,据点building对象增加了军团id属性:subgroupid
* 8,MAP对象增加了API:
* CalcDir:判断两个坐标的相对位置
* InALine:判断两个坐标是否在一条直线上
*/
/**
* 游戏难度取值
*
* @enum {number}
*/
declare enum STORYDIFF{
DIFF_1 = 1,
DIFF_2 = 2,
DIFF_3 = 3,
DIFF_4 = 4,
}
/**
* 武将状态取值
*
* @enum {number}
*/
declare enum HERO_STATE{
MASTER = 1, // 君主
YIBAN = 3, // 一般
ZAIYE = 4, // 在野
WEIDENGCHANG = 5, // 未登场
WEIFAXIAN = 6, // 未发现
DEAD = 7, // 死亡
FULU = 8, // 俘虏
}
/**
* 武将战略方针
*
* @enum {number}
*/
declare enum HERO_STRATEGY{
ZHONGHUATONGYI = 1, // 全图统一
DIFANGTONGYI = 2, // 地方统一
ZHOUTONGYI = 3, // 州统一
WEICHIXIANGZHUANG = 4, // 维持现状
}
/**
* 军团战略方针取值
*
* @enum {number}
*/
declare enum SB_STRATEGY{
ZHUANSHOUFANGWEI = 0, //专守防卫
SHILIGONGLUE = 1, //势力攻略
DIFANGGONGLUE = 2, //地方攻略
ZHOUGONGLUE = 3, //州攻略
CHONGSHIJUNBEI = 5, //充实军备
CHONGSHINEIZHENG = 6, //充实内政
TONGYI = 7, //全图统一
}
/**
* 势力战略方针取值
*
* @enum {number}
*/
declare enum GROUP_STRATEGY{
QUANTUTONGYI = 1, //全图统一
DIFANGTONGYI = 2, //地方统一
ZHOUTONGYI = 3, //州统一
WEICHIXIANZHUANG = 4, //维持现状
}
/**
* 势力外交状态
*
* @enum {number}
*/
declare enum RELATION_STATE{
NORMAL = 0, // 一般
ALLY = 1, // 结盟
STOPWAR = 2, // 停战
}
/**
* 兵装能力值
*
* @enum {number}
*/
declare enum WEAPONCAP{
S = 4, // S
A = 3, // A
B = 2, // B
C = 1, // C
}
/**
* 地形
*
* @enum {number}
*/
declare enum TERRAIN{
CAODI = 0, // 草地
TUDI = 1, // 土地
SHADI = 2, // 沙地
SHIDI = 3, // 湿地
DUQUAN = 4, // 毒泉
SEN = 5, // 森
CHUAN = 6, // 川
HE = 7, // 河
HAI = 8, // 海
HUANGDI = 9, // 荒地
ZHUJING = 10, // 主径
ZHANDAO = 11, // 栈道
DUSUO = 12, // 渡所
QIANTAN = 13, // 浅滩
AN = 14, // 岸
YA = 15, // 崖
XIAOJING = 19, // 小径
}
/**
* 方位
*
* @enum {number}
*/
declare enum MAP_DIR{
UP = 1,
LEFT_UP = 2,
LEFT_DOWN = 3,
DOWN = 4,
RIGHT_DOWN = 5,
RIGHT_UP = 6,
}
/**
* vector3
*
* @class Vector3
* @typedef {Vector3}
*/
declare class Vector3{
public x:number;
public y:number;
public z:number;
}
/**
* 事件信息
*
* @class EventInfo
* @typedef {EventInfo}
*/
declare class EventInfo{
/**
* 事件id
*
* @public
* @readonly
* @type {number}
*/
public readonly id:number;
/**
* 事件标题
*
* @public
* @readonly
* @type {string}
*/
public readonly title:string;
/**
* 事件绑定的势力id
* 如果事件绑定了势力id,当玩家选择该势力时,本事件才有可能发生。
*
* @public
* @readonly
* @type {number}
*/
public readonly groupid:number;
/**
* 本事件最大的可触发次数
*
* @public
* @readonly
* @type {number}
*/
public readonly maxcount:number;
/**
* 本事件是否有效
*
* @public
* @readonly
* @type {boolean}
*/
public readonly enable:boolean;
/**
* 本事件的类型
* 0:私有事件
* 1:公有事件
* 公有事件,将会显示在游戏中的事件列表中
*
* @public
* @readonly
* @type {number}
*/
public readonly type:number;
/**
* 本事件已经发生的次数
*
* @public
* @readonly
* @type {number}
*/
public readonly count:number;
}
/**
* 用于保存地图坐标的类。
*
* @class XY
* @typedef {XY}
*/
declare class XY{
/**
* x坐标
*
* @public
* @type {number}
*/
public x:number;
/**
* y坐标
*
* @public
* @type {number}
*/
public y:number;
}
/**
* 地图块信息。
*
* @class Tile
* @typedef {Tile}
*/
declare class Tile{
/**
* 地形
*
* @public
* @type {number}
* @readonly
*/
public readonly terrain:number;
/**
* 地界id
*
* @public
* @type {number}
* @readonly
*/
public readonly area:number;
/**
* 开发用地
*
* @public
* @type {boolean}
* @readonly
*/
public readonly dev:boolean;
/**
* 是否可以移动
*
* @public
* @type {boolean}
* @readonly
*/
public readonly movable:boolean;
/**
* 当前格子的部队id
* 如果没有部队,此字段为0
*
* @public
* @type {number}
* @readonly
*/
public readonly armyid:number;
/**
* 当前格子的建筑id
* 如果没有建筑,此字段为0
*
* @public
* @type {number}
* @readonly
*/
public readonly facilityid:number;
}
/**
* 势力类
*
* @class Group
* @typedef {Group}
*/
declare class Group{
/**
* 势力id
*
* @public
* @readonly
* @type {number}
*/
public readonly id:number;
/**
* 势力君主的武将id
*
* @public
* @readonly
* @type {number}
*/
public readonly masterid:number;
/**
* 势力军师的武将id
*
* @public
* @readonly
* @type {number}
*/
public readonly adviserid:number;
/**
* 势力爵位id
*
* @public
* @readonly
* @type {number}
*/
public readonly titleid:number;
/**
* 势力的国号
* 范围:最长2个字
*
* @public
* @type {string}
*/
public nationname:string;
/**
* 势力的战略方针
*
* @public
* @type {GROUP_STRATEGY}
*/
public strategy:GROUP_STRATEGY;
/**
* 势力的战略方针目标
* 当势力战略方针为【全图统一】时,本属性无效。
* 当势力战略方针为【地方统一】时,本属性为地方id。
* 当势力战略方针为【州统一】时,本属性为州id。
* 当势力战略方针为【维持现状】时,本属性无效。
*
* @public
* @type {number}
*/
public targetid:number;
/**
* 势力的技术值
* 范围:0-5000
*
* @public
* @type {number}
*/
public exp:number;
/**
* 势力是否是玩家控制
*
* @public
* @type {boolean}
*/
public isplayer:boolean;
/**
* 军团列表
*
* @public
* @readonly
* @type {SubGroup[]}
*/
public readonly subgroups:SubGroup[];
/**
* 势力是否激活
*
* @public
* @readonly
* @type {boolean}
*/
public readonly active:boolean;
/**
* 势力强度
*
* @public
* @readonly
* @type {number}
*/
public readonly level:number;
/**
* 是否玩家可选
*
* @public
* @readonly
* @type {boolean}
*/
public readonly selectable:boolean;
/**
* 是否贼势力
*
* @public
* @readonly
* @type {boolean}
*/
public readonly robber:boolean;
}
/**
* 军团类
*
* @class SubGroup
* @typedef {SubGroup}
*/
declare class SubGroup{
/**
* 军团id
*
* @public
* @readonly
* @type {number}
*/
public readonly id:number;
/**
* 势力id
*
* @public
* @readonly
* @type {number}
*/
public readonly groupid:number;
/**
* 军团统帅(都督)的武将id
*
* @public
* @readonly
* @type {number}
*/
public readonly leaderid:number;
/**
* 军团战略方针
*
* @public
* @type {SB_STRATEGY}
*/
public strategy:SB_STRATEGY;
/**
* 军团的战略方针目标
* 当军团战略方针为【专守防卫】时,本属性无效。
* 当军团战略方针为【势力攻略】时,本属性为目标势力id。
* 当军团战略方针为【地方攻略】时,本属性为地方id。
* 当军团战略方针为【州攻略】时,本属性为州id。
* 当军团战略方针为【充实军备】时,本属性为需要充实军备的都市id。
* 当军团战略方针为【充实内政】时,本属性为需要充实内政的都市id。
* 当军团战略方针为【全图统一】时,本属性无效。
*
* @public
* @type {number}
*/
public targetid:number;
/**
* 军团的行动力
* 范围:0-255
*
* @public
* @type {number}
*/
public ap:number;
}
/**
* 势力外交关系
*
* @class GroupRelation
* @typedef {GroupRelation}
*/
declare class GroupRelation{
/**
* 一对关系中的A势力id
*
* @public
* @readonly
* @type {number}
*/
public readonly groupida:number;
/**
* 一对关系中的B势力id
*
* @public
* @readonly
* @type {number}
*/
public readonly groupidb:number;
/**
* 亲密度。
* 取值0-100
*
* @public
* @type {number}
*/
public relation:number;
/**
* 外交状态。(包含普通、停战、结盟)
*
* @public
* @type {RELATION_STATE}
*/
public state:RELATION_STATE;
/**
* 停战时长(月)
* 如果外交状态为【停战】时,本属性为停战月数。其他时候无效。
*
* @public
* @type {number}
*/
public stopwartime:number;
}
/**
* 联合军类
*
* @class UnionGroup
* @typedef {UnionGroup}
*/
declare class UnionGroup{
/**
* 盟主势力id
*
* @public
* @type {number}
*/
public readonly leadergroupid:number;
/**
* 成员势力id列表
*
* @public
* @type {number[]}
*/
public membergroupids:number[];
/**
* 战略目标为势力id。
* 0:表示集体防御状态
* 非0:表示以攻略某个势力为目标。
* 如果目标为本联合军成员势力id,联合军进入防御状态。
*
* @public
* @type {number}
*/
public targetgroupid:number;
}
// /**
// * 兵器能力
// *
// * @class WeaponCaps
// * @typedef {WeaponCaps}
// */
// declare class WeaponCaps{
// /**
// * 枪兵能力
// *
// * @public
// * @type {WEAPONCAP}
// */
// public qiang:WEAPONCAP;
// /**
// * 戟兵能力
// *
// * @public
// * @type {WEAPONCAP}
// */
// public ji:WEAPONCAP;
// /**
// * default description
// *
// * @public
// * @type {WEAPONCAP}
// */
// public nu:WEAPONCAP;
// /**
// * default description
// *
// * @public
// * @type {WEAPONCAP}
// */
// public junma:WEAPONCAP;
// /**
// * default description
// *
// * @public
// * @type {WEAPONCAP}
// */
// public chongche:WEAPONCAP;
// /**
// * default description
// *
// * @public
// * @type {WEAPONCAP}
// */
// public jinglan:WEAPONCAP;
// /**
// * default description
// *
// * @public
// * @type {WEAPONCAP}
// */
// public toushi:WEAPONCAP;
// /**
// * default description
// *
// * @public
// * @type {WEAPONCAP}
// */
// public louchuan:WEAPONCAP;
// /**
// * default description
// *
// * @public
// * @type {WEAPONCAP}
// */
// public doujian:WEAPONCAP;
// }
/**
* 新建武将参数类
*
* @class CreateHeroParam
* @typedef {CreateHeroParam}
*/
declare class CreateHeroParam{
/**
* 武将姓。最长4个汉字
*
* @public
* @type {string}
*/
public name_f:string;
/**
* 武将名字。最长4个汉字
*
* @public
* @type {string}
*/
public name_l:string;
/**
* 武将字号。最长4个汉字
*
* @public
* @type {string}
*/
public name_ext:string;
/**
* 武将绰号。最长4个汉字
*
* @public
* @type {string}
*/
public name_alias:string;
/**
* 武将头像
* def:x 为系统头像。x为编号
* res:x 为剧本资源库中头像。x为资源编号。
*
* @public
* @type {string}
*/
public faceid:string;
/**
* 武将性别
* true:男性
* false:女性
*
* @public
* @type {number}
*/
public male:boolean;
/**
* 登场年
*
* @public
* @type {number}
*/
public ayear:number;
/**
* 出生年
*
* @public
* @type {number}
*/
public byear:number;
/**
* 死亡年
*
* @public
* @type {number}
*/
public dyear:number;
/**
* 父亲id
*
* @public
* @type {number}
*/
public fatherid:number;
/**
* 母亲id
*
* @public
* @type {number}
*/
public motherid:number;
/**
* 相性
* 范围0-150
*
* @public
* @type {number}
*/
public like:number;
/**
* 血缘
* 默认指向自己id。
*
* @public
* @type {number}
*/
public blood:number;
/**
* 义理
* 1:容易背叛
* 2:无情义
* 3:普通
* 4:情义坚定
* 5:不会背叛
*
* @public
* @type {number}
*/
public yili:number;
/**
* 野心
* 1:没有野心
* 2:
* 3:
* 4:
* 5:野心非常大
*
* @public
* @type {number}
*/
public yexin:number;
/**
* 性格
* 1:钢胆
* 2:冷静
* 3:小心
* 4:莽撞
*
* @public
* @type {number}
*/
public nature:number;
/**
* 亲近武将id列表
* 最多6人
*
* @public
* @type {number[]}
*/
public likeheros:number[];
/**
* 厌恶武将id列表
* 最多6人
*
* @public
* @type {number[]}
*/
public hateheros:number[];
/**
* 特技id
*
* @public
* @type {number}
*/
public skillid:number;
/**
* 武将战略
*
* @public
* @type {HERO_STRATEGY}
*/
public strategy:HERO_STRATEGY;
/**
* 跟随武将id
*
* @public
* @type {number}
*/
public followid:number;
/**
* 基础统帅
*
* @public
* @type {number}
*/
public tong_base:number;
/**
* 基础武力
*
* @public
* @type {number}
*/
public wu_base:number;
/**
* 基础智力
*
* @public
* @type {number}
*/
public zhi_base:number;
/**
* 基础政治
*
* @public
* @type {number}
*/
public zheng_base:number;
/**
* 基础魅力
*
* @public
* @type {number}
*/
public mei_base:number;
/**
* 所属据点id
*
* @public
* @type {number}
*/
public buildingid:number;//必须
/**
* 最大有效装备数
*
* @public
* @type {number}
*/
public maxequipt:number;
}
/**
* 武将类
*
* @class Hero
* @typedef {Hero}
*/
declare class Hero{
/**
* 武将id
*
* @public
* @readonly
* @type {number}
*/
public readonly id:number;
/**
* 姓
*
* @public
* @readonly
* @type {string}
*/
public readonly name_f:string;
/**
* 名
*
* @public
* @readonly
* @type {string}
*/
public readonly name_l:string;
/**
* 姓+名
*
* @public
* @readonly
* @type {string}
*/
public readonly name:string
/**
* 字号
*
* @public
* @readonly
* @type {string}
*/
public readonly name_ext:string;
/**
* 绰号
*
* @public
* @readonly
* @type {string}
*/
public readonly name_alias:string;
/**
* 是否男性
*
* @public
* @readonly
* @type {boolean}
*/
public readonly male:boolean;
/**
* 登场年
*
* @public
* @readonly
* @type {number}
*/
public readonly ayear:number;
/**
* 出生年
*
* @public
* @readonly
* @type {number}
*/
public readonly byear:number;
/**
* 死亡年
*
* @public
* @readonly
* @type {number}
*/
public readonly dyear:number;
/**
* 父亲武将id
*
* @public
* @readonly
* @type {number}
*/
public readonly fatherid:number;
/**
* 母亲武将id
*
* @public
* @readonly
* @type {number}
*/
public readonly motherid:number;
/**
* 相性。取值0-150
* 两个武将相性越接近,表示他们在历史上关系亲近。这不同于父母、血缘、兄弟关系。例如刘备与诸葛亮,他们没有血缘关系,也不是兄弟关系。但他们历史上属于同一阵营,所以游戏中他们的相性十分接近。
* 在游戏中登用时,相性接近会对登用成功率有正面的影响。
*
* @public
* @readonly
* @type {number}
*/
public readonly like:number;
/**
* 亲近武将id列表(最多6个)
* 亲近的武将之间登用、作战、完成开发任务,会有一些正向的加成和特殊效果。
*
* @public
* @readonly
* @type {number[]}
*/
public readonly likeheros:number[];
/**
* 厌恶武将id列表(最多6个)
* 厌恶的武将之间登用、作战、完成开发任务,会有一些负向的加成。
*
* @public
* @readonly
* @type {number[]}
*/
public readonly hateheros:number[];
/**
* 特技id
*
* @public
* @readonly
* @type {number}
*/
public readonly skillid:number;
/**
* 武将的战略方针。
* 当武将成为君主后,会根据武将的战略方针刷新势力的战略方针。
*
* @public
* @readonly
* @type {HERO_STRATEGY}
*/
public readonly strategy:HERO_STRATEGY;
/**
* 跟随武将id
* 当为非0时,如果跟随武将存在某个势力,本武将会加入跟随武将所在势力。
*
* @public
* @readonly
* @type {number}
*/
public readonly followid:number;
/**
* 综合统帅
* 等于基本统帅+统帅修正+宝物附加
*
* @public
* @readonly
* @type {number}
*/
public readonly tong:number;
/**
* 综合武力
* 等于基本武力+武力修正+宝物附加
*
* @public
* @readonly
* @type {number}
*/
public readonly wu:number;
/**
* 综合智力
* 等于基本智力+智力修正+宝物附加
*
* @public
* @readonly
* @type {number}
*/
public readonly zhi:number;
/**
* 综合政治
* 等于基本政治+政治修正+宝物附加
*
* @public
* @readonly
* @type {number}
*/
public readonly zheng:number;
/**
* 综合魅力
* 等于基本魅力+魅力修正+宝物附加
*
* @public
* @readonly
* @type {number}
*/
public readonly mei:number;
/**
* 基础统帅
*
* @public
* @readonly
* @type {number}
*/
public readonly tong_base:number;
/**
* 基础武力
*
* @public
* @readonly
* @type {number}
*/
public readonly wu_base:number;
/**
* 基础智力
*
* @public
* @readonly
* @type {number}
*/
public readonly zhi_base:number;
/**
* 基础政治
*
* @public
* @readonly
* @type {number}
*/
public readonly zheng_base:number;
/**
* 基础魅力
*
* @public
* @readonly
* @type {number}
*/
public readonly mei_base:number;
/**
* 统帅修正
*
* @public
* @type {number}
*/
public tong_add:number;
/**
* 武力修正
*
* @public
* @type {number}
*/
public wu_add:number;
/**
* 智力修正
*
* @public
* @type {number}
*/
public zhi_add:number;
/**
* 政治修正
*
* @public
* @type {number}
*/
public zheng_add:number;
/**
* 魅力修正
*
* @public
* @type {number}
*/
public mei_add:number;
/**
* 所在势力id
* 0表示不在任何势力
*
* @public
* @readonly
* @type {number}
*/
public readonly groupid:number;
/**
* 军团编号
*
* @public
* @readonly
* @type {number}
*/
public readonly subgroupid:number;
/**
* 所属据点id
*
* @public
* @readonly
* @type {number}
*/
public readonly buildingid:number;
/**
* 当前所在据点id
* 0表示当前不在据点里。(与所在部队id不同时为0)
*
* @public
* @readonly
* @type {number}
*/
public readonly curbuildingid:number;
/**
* 当前所在部队id
* 0表示当前不在部队里(与所在据点id不同时为0)
*
* @public
* @readonly
* @type {number}
*/
public readonly curarmyid:number;
/**
* 官职id
*
* @public
* @readonly
* @type {number}
*/
public readonly officeid:number;
/**
* 忠诚
* 范围:0-255
* 游戏中只会显示0-100
*
* @public
* @type {number}
*/
public loyalty:number;
/**
* 功绩
* 范围:0-10000
*
* @public
* @type {number}
*/
public exp:number;
/**
* 体力
* 范围:0-100
*
* @public
* @type {number}
*/
public hp:number;
/**
* 配偶id
*
* @public
* @readonly
* @type {number}
*/
public readonly mateid:number;
/**
* 大哥id
*
* @public
* @readonly
* @type {number}
*/
public readonly brotherid:number;
/**
* 兵器能力
*
* @public
* @type {WeaponCaps}
*/
public weaponcaps:WEAPONCAP[];
/**
* 本回合是否已经行动
*
* @public
* @type {boolean}
*/
public acted:boolean;
/**
* 当前执行的任务id
* 0表示当前没有执行任务
*
* @public
* @readonly
* @type {number}
*/
public readonly taskid:number;
/**
* 当前身份状态
*
* @public
* @readonly
* @type {HERO_STATE}
*/
public readonly state:HERO_STATE;
/**
* 持有宝物id列表
*
* @public
* @readonly
* @type {number[]}
*/
public readonly itemids:number[];
/**
* 最大有效装备数
*
* @public
* @readonly
* @type {number}
*/
public readonly maxequipt:number;
}
/**
* 宝物类
*
* @class Item
* @typedef {Item}
*/
declare class Item{
/**
* 宝物id
*
* @public
* @readonly
* @type {number}
*/
public readonly id:number;
/**
* 宝物名字
*
* @public
* @readonly
* @type {string}
*/
public readonly name:string;
/**
* 所属武将id
*
* @public
* @readonly
* @type {number}
*/
public readonly heroid:number;
/**
* 所在据点id
*
* @public
* @readonly
* @type {number}
*/
public readonly buildingid:number;
}
/**
* 建筑类型
*
* @enum {number}
*/
declare enum FACILITY_TYPE{
INVALID = 0,
CITY = 1, // 城市
STATION = 2, // 关隘
HARBOR = 3, //港口
JIANLOU = 7, //箭楼
LIANNULOU = 8, //连弩楼
TOUSHITAI = 11, //投石台
TAIGUTAI = 12, //太鼓台
JUNYUETAI = 13, //军乐台
YINGDI_YIZU = 15, // 异族营地
YINGDI_ZEI = 16, // 贼营地
SHICHANG_1 = 32, // 市场
NONGCHANG_1 = 33, // 农场
BINGSHE_1 = 34, // 兵舍
DUANYECHANG_1 = 35, // 锻冶厂
JIUSHE_1 = 36, // 厩舍
GONGFANG = 37, // 工坊
ZAOCHUANCHANG = 38, // 造船厂
}
/**
* 建筑分类
*
* @enum {number}
*/
declare enum FACILITY_KLASS{
FIXED = 1, // 固定设施(城港关)
JUNSHISHESHI = 2, // 军事设施(箭楼那些)
DEV = 5, // 内政设施(农场那些)
}
/**
* 建筑基本信息类
*
* @class FacilityInfo
* @typedef {FacilityInfo}
*/
declare class FacilityInfo{
/**
* 建筑基本信息id
* 等同于Facility.type
*
* @public
* @readonly
* @type {number}
*/
public readonly id:number;
/**
* 建筑名
*
* @public
* @readonly
* @type {string}
*/
public readonly name:string;
/**
* 建筑描述
*
* @public
* @readonly
* @type {string}
*/
public readonly description:string;
/**
* 分类
*
* @public
* @readonly
* @type {FACILITY_KLASS}
*/
public readonly klass:FACILITY_KLASS;
/**
* 激活
* 激活的建筑才能被建造
*
* @public
* @readonly
* @type {boolean}
*/
public readonly active:boolean;
/**
* 依赖的科技id。
* 0表示建筑不依赖任何科技
*
* @public
* @readonly
* @type {number}
*/
public readonly needtech:number;
/**
* 值。根据建筑的不同具有不同的作用。
* 当为农场/市场:代表产量。
* 当为攻击型建筑时:代表等效士兵数。
*
* @public
* @readonly
* @type {number}
*/
public readonly value:number;
/**
* 最大耐久
*
* @public
* @readonly
* @type {number}
*/
public readonly maxhp:number;
/**
* 造价
*
* @public
* @readonly
* @type {number}
*/
public readonly cost:number;
/**
* 自身大小半径
*
* @public
* @readonly
* @type {number}
*/
public readonly size:number;
/**
* 间隔范围半径
* 建造时,半径范围里不能有其他建筑
*
* @public
* @readonly
* @type {number}
*/
public readonly reflection_range:number;
/**
* 作用范围小
*
* @public
* @readonly
* @type {number}
*/
public readonly min_range:number;
/**
* 作用范围大
*
* @public
* @readonly
* @type {number}
*/
public readonly max_range:number;
/**
* 是否可以被点燃
*
* @public
* @readonly
* @type {boolean}
*/
public readonly flammable:boolean;
/**
* 最大个数。只对内政建筑有效。
* 为0表示没有限制。大于0时表示每个城市最多能建造的个数。
*
* @public
* @readonly
* @type {number}
*/
public readonly maxnr:number;
}
/**
* 建筑类
*
* @class Facility
* @typedef {Facility}
*/
declare class Facility{
/**
* 建筑id
*
* @public
* @readonly
* @type {number}
*/
public readonly id:number;
/**
* 类型
*
* @public
* @readonly
* @type {FACILITY_TYPE}
*/
public readonly type:FACILITY_TYPE;
/**
* 分类
*
* @public
* @readonly
* @type {FACILITY_KLASS}
*/
public readonly klass:FACILITY_KLASS;
/**
* 名字
*
* @public
* @readonly
* @type {string}
*/
public readonly name:string;
/**
* 所属势力id
*
* @public
* @readonly
* @type {number}
*/
public readonly groupid:number;
/**
* 耐久
*
* @public
* @type {number}
*/
public hp:number;
/**
* 最大耐久
*
* @public
* @readonly
* @type {number}
*/
public readonly maxhp:number;
/**
* 坐标
*
* @public
* @readonly
* @type {number}
*/
public readonly xy:XY;
/**
* 半径
*
* @public
* @readonly
* @type {number}
*/
public readonly radius:number;
/**
* 建造完成
* true:完成
* false:未完成
* 只能从未完成状态修改到完成状态。
*
* @public
* @type {boolean}
*/
public comp:boolean;
/**
* 角度
*
* @public
* @type {number}
*/
public angle:number;
/**
* 生产(使用中)中。
* 例如,正在生产冲车的工房,本属性为true
*
* @public
* @type {boolean}
*/
public used:boolean;
}
/**
* 据点
*
* @class Building
* @typedef {Building}
* @extends {Facility}
*/
declare class Building extends Facility{
/**
* 军团id
*
* @public
* @type {number}
*/
public subgroupid:number;
/**
* 士兵
*
* @public
* @type {number}
*/
public soldier:number;
/**
* 最大士兵
*
* @public
* @readonly
* @type {number}
*/
public readonly maxsoldier:number;
/**
* 金
*
* @public
* @type {number}
*/
public gold:number;
/**
* 最大金
*
* @public
* @type {number}
* @readonly
*/
public readonly maxgold:number;
/**
* 米
*
* @public
* @type {number}
*/
public food:number;
/**
* 米最大值
*
* @public
* @type {number}
* @readonly
*/
public readonly maxfood:number;
/**
* 武器库存
* 数组索引参考 @type {WEAPON}
* 例如:var qiang = building.weapons[WEAPON.QIANG];
*
* @public
* @type {number[]}
*/
public weapons:number[];
/**
* 治安.(只有都市才有该属性)
*
* @public
* @type {number}
*/
public security:number;
/**
* 州id.(只有都市才有该属性)
*
* @public
* @type {number}
* @readonly
*/
public readonly stateid:number;
/**
* 贼势力id.(只有都市才有该属性)
*
* @public
* @type {number}
* @readonly
*/
public readonly robberid:number;
/**
* 邻接都市id列表
*
* @public
* @type {number[]}
* @readonly
*/
public readonly nbs:number[];
}
/**
* 部队类型
*
* @enum {number}
*/
declare enum ARMYTYPE{
BATTLE = 0, // 一般部队
TRANS = 1, // 运输队
}
/**
* 部队状态
*
* @enum {number}
*/
declare enum ARMYSTATE{
NORMAL = 0, // 正常
CONFUSE = 1, // 混乱
LIE = 2, // 伪报
}
/**
* 兵装
*
* @enum {number}
*/
declare enum WEAPON{
JIAN = 1, // 剑
QIANG = 2, // 枪
JI = 3, // 戟
NU = 4, // 弩
JUNMA = 5, // 军马
CHONGCHE = 6, // 冲车
JINGLAN = 7, // 井栏
TOUSHI = 8, // 投石
MUSHOU = 9, // 木兽
ZOUGE = 10, // 走舸
LOUCHUAN = 11, // 楼船
DOUJIAN = 12, // 斗舰
}
/**
* 兵装类型
*
* @enum {number}
*/
declare enum WEAPONTYPE{
QIANG = 0, // 枪
JI = 1, // 戟
NU = 2, // 弩
JUNMA = 3, // 军马
BINGQI = 4, // 兵器
SHUIJUN = 5, // 水军
}
/**
* 部队能力属性
*
* @class ArmyAttr
* @typedef {ArmyAttr}
*/
declare class ArmyAttr{
/**
* 攻击(陆地)
*
* @public
* @type {number}
*/
public atk_l:number;
/**
* 防御(陆地)
*
* @public
* @type {number}
*/
public def_l:number;
/**
* 移动力(陆地)
*
* @public
* @type {number}
*/
public mp_l:number;
/**
* 攻击(水)
*
* @public
* @type {number}
*/
public atk_w:number;
/**
* 防御(水)
*
* @public
* @type {number}
*/
public def_w:number;
/**
* 移动力(水)
*
* @public
* @type {number}
*/
public mp_w:number;
/**
* 智力
*
* @public
* @type {number}
*/
public zhi:number;
/**
* 建造能力
*
* @public
* @type {number}
*/
public buildspeed:number;
}
/**
* 部队委任类型
*
* @enum {number}
*/
declare enum ARMYAITYPE{
MANUAL = 0, //手动
BUILD = 1, //建造或者修补
MOVE = 2, //仅仅移动
ATTACK_ARMY = 3, //攻击指定的部队(AI或者人工委任)
ATTACK_FACILITY = 4,//攻击指定的设施(AI或者人工委任)
ATTACK_AREA = 5, // 攻击一个城市区域(AI)/*目标:消灭区域所有可以消灭的东西,最后占领设施 */
DEFEND_AREA = 6, //驱逐(AI保护一个区域,当敌人离开区域时结束)/*目标:消灭区域所有存在的敌人。区域可能是自己本方区域,也可能是盟军地界。如果区域被清理赶紧则撤回。如果区域都市被敌人占领,撤回 */
}
/**
* 创建部队参数
*
* @class CreateArmyParam
* @typedef {CreateArmyParam}
*/
declare class CreateArmyParam{
/**
*所属据点id
*
* @public
* @type {number}
*/
public buildingid:number;
/**
* 部队类型
*
* @public
* @type {ARMYTYPE}
*/
public type:ARMYTYPE;
/**
* 武将id列表
*
* @public
* @type {number[]}
*/
public heroids:number[];
/**
* 坐标
*
* @public
* @type {XY}
*/
public xy:XY;
/**
* 陆地兵装
*
* @public
* @type {WEAPON}
*/
public weapon_land:WEAPON;
/**
* 水上兵装
*
* @public
* @type {WEAPON}
*/
public weapon_water:WEAPON;
}
/**
* 部队
*
* @class Army
* @typedef {Army}
*/
declare class Army{
/**
* 部队id
*
* @public
* @readonly
* @type {number}
*/
public readonly id:number;
/**
* 所属势力id
*
* @public
* @readonly
* @type {number}
*/
public readonly groupid:number;
/**
* 所属军团id
*
* @public
* @readonly
* @type {number}
*/
public readonly subgroupid:number;
/**
* 所属据点id
*
* @public
* @readonly
* @type {number}
*/
public readonly buildingid:number;
/**
* 坐标
*
* @public
* @type {XY}
*/
public xy:XY;
/**
* 武将id列表
*
* @public
* @readonly
* @type {number[]}
*/
public readonly heroids:number[];
/**
* 部队类型
*
* @public
* @readonly
* @type {ARMYTYPE}
*/
public readonly type:ARMYTYPE;
/**
* 金
*
* @public
* @type {number}
*/
public gold:number;
/**
* 米
*
* @public
* @type {number}
*/
public food:number;
/**
* 士兵
*
* @public
* @type {number}
*/
public soldier:number;
/**
* 陆地兵装
*
* @public
* @readonly
* @type {WEAPON}
*/
public readonly weapon_land:WEAPON;
/**
* 水上兵装
*
* @public
* @readonly
* @type {WEAPON}
*/
public readonly weapon_water:WEAPON;
/**
* 气力
*
* @public
* @type {number}
*/
public mp:number;
/**
* 状态
* 0:正常
* 1:混乱
* 2:伪报
*
* @public
* @type {ARMYSTATE}
*/
public state:ARMYSTATE;
/**
* 状态剩余回合数
* 如果状态为【正常】,本属性无效。如果状态为【混乱】或【伪报】,本属性为状态剩余回合数。回合数归零时恢复到【正常】状态。
*
* @public
* @type {number}
*/
public stateturns:number;
/**
* 委任方式
*
* @public
* @type {ARMYAITYPE}
*/
public aitype:ARMYAITYPE;
/**
* 委任目标
* 委任目标的取值取决于【委任方式】
* 当为委任式为:
* MANUAL:无效。
* BUILD:被建造(修补)的设施id。
* MOVE:无效。此时应该关注destxy属性。
* ATTACK_ARMY:目标部队id。
* ATTACK_FACILITY:目标设施id。
* ATTACK_AREA:目标据点id。
* DEFEND_ATRA:目标据点id。
*
*
* @public
* @type {number}
*/
public targetid:number;
/**
* 委任目的地
* 当【委任方式】为MOVE时,本属性为移动的目的地。
*
* @public
* @type {number}
*/
public destxy:XY;
/**
* 部队能力属性
*
* @public
* @type {ArmyAttr}
*/
public attr:ArmyAttr;
/**
* 是否已经行动
*
* @public
* @type {boolean}
*/
public acted:boolean;
}
/**
* 尺寸类
*
* @class SIZE2D
* @typedef {SIZE2D}
*/
declare class SIZE2D{
/**
* 宽
*
* @public
* @type {number}
*/
public w:number;
/**
* 高
*
* @public
* @type {number}
*/
public h:number;
}
/**
* 2D坐标类
*
* @class Point2D
* @typedef {Point2D}
*/
declare class Point2D{
/**
* X坐标
*
* @public
* @type {number}
*/
public x:number;
/**
* Y坐标
*
* @public
* @type {number}
*/
public y:number;
}
/**
* UI挂件类
*
* @class Widget
* @typedef {Widget}
*/
declare class Widget{
/**
* 本地坐标(笛卡尔坐标)
*
* @public
* @type {Point2D}
*/
public position:Point2D;
/**
* 尺寸
*
* @public
* @type {SIZE2D}
*/
public size:SIZE2D;
/**
* 是否有效
*
* @public
* @type {boolean}
*/
public active:boolean;
/**
* 子节点列表
*
* @public
* @type {Widget[]}
*/
public children:Widget[];
/**
* 颜色
*
* @public
* @type {number}
*/
public color:number;
/**
* 中心点
*
* @public
* @type {Point2D}
*/
public pivot:Point2D;
/**
* 是否拦截点击事件
*
* @public
* @type {boolean}
*/
public touchmask:boolean;
}
/**
* UI挂件图片
*
* @class WidgetImage
* @typedef {WidgetImage}
* @extends {Widget}
*/
declare class WidgetImage extends Widget{
/**
* 图片资源id
*
* @public
* @type {string}
*/
public sprResid:string;
}
/**
* UI挂件文本
*
* @class WidgetText
* @typedef {WidgetText}
* @extends {Widget}
*/
declare class WidgetText extends Widget{
/**
* 文本
*
* @public
* @type {string}
*/
public text:string;
}
/**
* UI挂件按钮
*
* @class WidgetButton
* @typedef {WidgetButton}
* @extends {Widget}
*/
declare class WidgetButton extends Widget{
/**
* 点击响应事件
*
* @public
* @type {()=>void}
*/
public onClick:()=>void;
/**
* 拖动事件
*
* @public
* @type {()=>void}
* @param {number} state 拖动阶段:1,拖动开始;2,拖动中;3,拖动结束
* @param {Point2D} position 当前位置
*/
public onDrag:(state:number, position:Point2D)=>void;
}
/**
* 调试类
*
* @class Debug
* @typedef {Debug}
*/
declare class Debug{
/**
* 输出日志、同console.log
*
* @public
* @static
* @param {any} s
*/
public static log(s:any):void;
}
/**
* 杂项类
*
* @class Misc
* @typedef {Misc}
*/
declare class Misc{
/**
* 随机整数
*
* @public
* @static
* @param {number} min
* @param {number} max
* @returns {number}
*/
public static RandomI(min:number, max:number):number;
/**
* 随机小数
*
* @public
* @static
* @param {number} min
* @param {number} max
* @returns {number}
*/
public static RandomF(min:number, max:number):number;
/**
* 裁剪
*
* @public
* @static
* @param {number} value
* @param {number} min
* @param {number} max
* @returns {number}
*/
public static Clamp(value:number, min:number, max:number):number;
}
/**
* 剧本设置类
*
* @class StorySettings
* @typedef {StorySettings}
*/
declare class StorySettings{
/**
* 剧本难度
*
* @public
* @static
* @readonly
* @type {STORYDIFF}
*/
public static diff:STORYDIFF;
/**
* 地图迷雾
*
* @public
* @static
* @readonly
* @type {boolean}
*/
public static fog_of_map:boolean;
/**
* 数据迷雾
*
* @public
* @static
* @readonly
* @type {boolean}
*/
public static fog_of_data:boolean;
}
/**
* 剧本类
*
* @class Story
* @typedef {Story}
*/
declare class Story{
/**
* 剧本id
*
* @public
* @static
* @type {number}
*/
public static sid:number;
/**
* 剧本开始年
*
* @public
* @static
* @type {number}
*/
public static syear:number;
/**
* 剧本开始月
*
* @public
* @static
* @type {number}
*/
public static smonth:number;
/**
* 剧本开始日
*
* @public
* @static
* @type {number}
*/
public static stendays:number;
/**
* 剧本难度
*
* @public
* @static
* @type {STORYDIFF}
*/
public static diff:STORYDIFF;
/**
* 当前年
*
* @public
* @static
* @type {number}
*/
public static year:number;
/**
* 当前月
*
* @public
* @static
* @type {number}
*/
public static month:number;
/**
* 当前旬
* 取值
* 0:上旬
* 1:中旬
* 2:下旬
*
* @public
* @static
* @type {number}
*/
public static tendays:number;
/**
* 从剧本开始到当前时间过去了多少旬(回合)
*
* @public
* @static
* @type {number}
*/
public static tendayspassed:number;
/**
* 剧本设定
*
* @public
* @static
* @type {StorySettings}
*/
public static settings:StorySettings;
/**
* 存储区
* 当游戏存档时,系统会将本字段通过JSON序列化后,保存至游戏存档文件。
* 读当时,会从游戏存档中将数据反向序列化后,恢复到本字段。
*
* @public
* @static
* @type {*}
*/
public static storage:any;
/**
* 开发模式
*
* @public
* @static
* @type {boolean}
*/
public static dev:boolean;
/**
* 游戏版本
* 例如1240
*
* @public
* @static
* @type {number}
*/
public static appver:number;
/**
* 游戏渠道
* 例如googleplay/hykb/ios
*
* @public
* @static
* @type {string}
*/
public static channel:string;
/**
* 控制AI行为:暗加资源
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_resource_hack:boolean;
/**
* 控制AI行为:AI武将调动
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_hero_balance_en:boolean;
/**
* 控制AI行为:AI资源调动
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_resource_balance_en:boolean;
/**
* 控制AI行为:AI开发内政设施
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_dev_en:boolean;
/**
* 控制AI行为:AI征兵
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_zhengbing_en:boolean;
/**
* 控制AI行为:AI巡查
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_xuncha_en:boolean;
/**
* 控制AI行为:AI训练
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_xunlian_en:boolean;
/**
* 控制AI行为:AI生产兵装
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_shengchan_en:boolean;
/**
* 控制AI行为:AI登用
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_dengyong_en:boolean;
/**
* 控制AI行为:AI褒奖
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_baojiang_en:boolean;
/**
* 控制AI行为:AI进攻出兵
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_attack_en:boolean;
/**
* 控制AI行为:AI防守出兵
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_defend_en:boolean;
/**
* 控制AI行为:AI开发军事设施(箭楼之类)
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_dev_junshisheshi_en:boolean;
/**
* 控制系统行为:系统惩罚1兵流
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static army_punish_en:boolean;
/**
* 控制AI行为:Ai外交
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_waijiao_en:boolean;
/**
* 控制AI行为:Ai研究科技
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static ai_research_tech_en:boolean;
/**
* 系统机制开关:新开剧本,摄像机移动至玩家主城
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static story_start_camera_to_player_city:boolean;
/**
* 系统机制开关:敌人入境提醒
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static enemy_insight_report_en:boolean;
/**
* 系统机制开关:玩家会和开始时,武将提示。
* true:启用;false:关闭
* @public
* @static
* @type {boolean}
*/
public static player_turn_msg:boolean;
/**
* 查询势力
*
* @public
* @static
* @param {number} id
* @returns {Group}
*/
public static GetGroup(id:number):Group;
/**
* 查询势力
*
* @public
* @static
* @param {(group:Group)=>boolean} filter 过滤器
* @returns {Group[]}
*/
public static GetGroups(filter?:(group:Group)=>boolean):Group[];
/**
* 查询军团
*
* @public
* @static
* @param {number} groupid
* @param {number} subgroupid
* @returns {SubGroup}
*/
public static GetSubgroup(groupid:number,subgroupid:number):SubGroup;
/**
* 查询武将
*
* @public
* @static
* @param {number} id
* @returns {Hero}
*/
public static GetHero(id:number):Hero;
/**
* 查询武将
*
* @public
* @static
* @param {(hero:Hero)=>boolean} filter 过滤器
* @returns {Hero[]}
*/
public static GetHeros(filter?:(hero:Hero)=>boolean):Hero[];
/**
* 添加武将
*
* @public
* @static
* @param {CreateHeroParam} param 添加武将时的参数
* @returns {number} 新建武将的id
*/
public static AddHero(param:CreateHeroParam):number;
/**
* 查询据点
*
* @public
* @static
* @param {number} id 据点id
* @returns {Building}
*/
public static GetBuilding(id:number):Building;
/**
* 查询据点
*
* @public
* @static
* @param {(b:Building)=>boolean} filter 过滤器
* @returns {Building[]}
*/
public static GetBuildings(filter?:(b:Building)=>boolean):Building[];
/**
* 查询设施信息
*
* @public
* @static
* @param {number} id 设施id
* @returns {Facility}
*/
public static GetFacilityInfo(id:number):FacilityInfo;
/**
* 添加设施
*
* @public
* @static
* @param {number} type 设施类型,参考FACILITY_TYPE以及自定义建筑id
* @param {number} groupid 设施所属势力
* @param {XY} xy 设施坐标
* @returns {Facility}
*/
public static AddFacility(type:number, groupid:number, xy:XY):Facility;
/**
* 查询设施
*
* @public
* @static
* @param {number} id 设施id
* @returns {Facility}
*/
public static GetFacility(id:number):Facility;
/**
* 查询设施
*
* @public
* @static
* @param {(b:Facility)=>boolean} filter 过滤器
* @returns {Facility[]}
*/
public static GetFacilitys(filter?:(b:Facility)=>boolean):Facility[];
/**
* 查询部队
*
* @public
* @static
* @param {number} id 部队id
* @returns {Army}
*/
public static GetArmy(id:number):Army;
/**
* 查询部队
*
* @public
* @static
* @param {(b:Army)=>boolean} filter 过滤器
* @returns {Army[]}
*/
public static GetArmys(filter?:(b:Army)=>boolean):Army[];
/**
* 查询宝物
*
* @public
* @static
* @param {number} id 宝物id
* @returns {Item} 宝物对象
*/
public static GetItem(id:number):Item;
/**
* 查询宝物
*
* @public
* @static
* @param {(b:Item)=>boolean} filter 过滤器
* @returns {Item[]}
*/
public static GetItems(filter?:(b:Item)=>boolean):Item[];
/**
* 查询势力外交关系
*
* @public
* @static
* @param {number} groupida 势力A id
* @param {number} groupidb 势力B id
* @returns {GroupRelation} 势力关系
*/
public static GetRelation(groupida:number, groupidb:number):GroupRelation;
/**
* 查询势力外交关系列表
*
* @public
* @static
* @param {number} groupida 势力A id
* @param {number} groupidb 势力B id
* @returns {GroupRelation} 势力关系
*/
public static GetRelations(filter:(groupida:number, groupidb:number)=>boolean):GroupRelation[];
/**
* 执行势力投降
*
* @public
* @static
* @param {number} fromgroupid 发起投降的势力id
* @param {number} togroupid 接受投降的势力id
* @param {number} tosubgroupid 接受投降的军团id
* @returns {boolean} 投降是否成功
*/
public static DoGroupSurrunder(fromgroupid:number, togroupid:number, tosubgroupid:number):boolean
/**
* 军团投降
*
* @public
* @static
* @param {number} fromgroupid 将要投降的势力id
* @param {number} fromsubgroupid 将要投降的军团id
* @param {number} togroupid 接受投降的势力id
* @param {number} tosubgroupid 接受投降的军团id
* @returns {boolean} 投降是否成功
*/
public static DoSubGroupSurrunder(fromgroupid:number, fromsubgroupid:number, togroupid:number, tosubgroupid:number):boolean
/**
* 城市投降(不支持)
*
* @public
* @static
* @param {number} frombuildingid 将要投降的都市id
* @param {number} togroupid 接受投降的势力id
* @param {number} tosubgroupid 接受投降的军团id
* @returns {boolean} 投降是否成功
*/
public static DoCitySurrunder(frombuildingid:number, togroupid:number, tosubgroupid:number):boolean
/**
* 执行势力独立(不支持)
*
* @public
* @static
* @param {number} groupid 将要独立的势力id
* @param {number} subgroupid 将要独立的军团id。不能是1军团
* @param {number} newmasterid 新势力预定君主。如果不填,由系统选出。
* @returns {number} 军团独立产生的新势力id
*/
public static DoSubgroupIndpendcy(groupid:number, subgroupid:number, newmasterid?:number):number
/**
* 执行城市独立(不支持)
*
* @public
* @static
* @param {number} buildingid 将要独立的城市id
* @returns {number} 城市独立产生的新势力id
*/
public static DoCityIndpendcy(buildingid:number):number
/**
* 执行单挑
*
* @public
* @static
* @param {number} heroida A武将
* @param {number} heroidb B武将
* @returns {number} 结果。0:平局;1:A武将胜利;2:B武将胜利。
*/
public static DoStartPK(heroida:number, heroidb:number):number
/**
* 执行舌战
*
* @public
* @static
* @param {number} heroida A武将
* @param {number} heroidb B武将
* @returns {number} 结果。0:平局;1:A武将胜利;2:B武将胜利。
*/
public static DoStartSZ(heroida:number, heroidb:number):number
/**
* 武将死亡
*
* @public
* @static
* @param {number} heroid
*/
public static DoHeroDie(heroid:number):void
/**
* 武将加入势力
*
* @public
* @static
* @param {number} heroid 被执行的武将id
* @param {number} groupid 即将加入的势力id
* @param {number} buildingid 即将加入的势力的据点id
* @param {HERO_STATE} state 武将新状态(默认值为3:一般)
* @returns {boolean} 是否成功
*/
public static DoHeroJoin(heroid:number, groupid:number, buildingid:number, state?:HERO_STATE):boolean
/**
* 执行新建部队
*
* @public
* @static
* @param {CreateArmyParam} param 新建部队参数
* @returns {number} 返回新建的部队id。如果返回0表示新建失败;大于0表示成功。
*/
public static DoAddArmy(param:CreateArmyParam):number;
/**
* 执行部队解散
*
* @public
* @static
* @param {number} armyid
*/
public static DoArmyDie(armyid:number):void;
/**
* 手动触发系统进行部队能力计算
*
* @public
* @static
* @param {number} armyid
*/
public static DoCalcArmyAttr(armyid:number):void;
/**
* 查询事件信息
*
* @public
* @static
* @param {number} eventid 事件id
* @returns {EventInfo} 事件信息
*/
public static GetEventInfo(eventid:number):EventInfo;
}
/**
* 游戏控制类
*
* @class Control
* @typedef {Control}
*/
declare class Control{
/**
* 播放音效
*
* @public
* @static
* @param {string} resid // 音效对应的资源uri,例如"res:59"
*/
public static PlaySFX(resid:string):void
/**
* 播放当前曲目替代当前BGM
*
* @public
* @static
* @param {string} resid // BGM对应的资源uri,例如"res:66"
*/
public static PlayBGM(resid:string):void
/**
* 暂停当前BGM
*
* @public
* @static
*/
public static StopBGM():void
/**
* 结束剧本
*
* @public
* @static
*/
public static ExitStory():void
/**
* 延时
*
* @public
* @static
* @param {number} second
*/
public static Sleep(second:number):void
}
/**
* 系统选择列表参数
*
* @class ShowListParam
* @typedef {ShowListParam}
*/
declare class ShowListParam{
/**
* 标题
*
* @public
* @type {string}
*/
public title:string;
/**
* 要显示的数据列表
*
* @public
* @type {(Hero[]|Army[]|Building[]|Group[]|SubGroup[]|any[])}
*/
public data:Hero[]|Army[]|Building[]|Group[]|SubGroup[]|any[];
/**
* 最小选择数量。如果不满足,将不会显示【确认】按键。
*
* @public
* @type {number}
*/
public min_selection:number;
/**
* 最大选择数量。如果不满足,将不会显示【确认】按键。
*
* @public
* @type {number}
*/
public max_selection:number;
/**
* 强制选择(没有取消键)
*
* @public
* @type {boolean}
*/
public force_selection:boolean;
}
/**
* UI控制类
*
* @class UI
* @typedef {UI}
*/
declare class UI{
/**
* 屏幕宽度
*
* @public
* @static
* @readonly
* @type {number}
*/
public static readonly ScreenWidth:number;
/**
* 屏幕高度
*
* @public
* @static
* @readonly
* @type {number}
*/
public static readonly ScreenHeight:number;
/**
* 显示旁白对话框
*
* @public
* @static
* @param {string} img_resid
* @param {string} msg
*/
public static MsgBox(img_resid:string, msg:string):void;
/**
* 显示单武将说话对话框
*
* @public
* @static
* @param {number} heroid
* @param {string} msg
*/
public static Talk(heroid:number, msg:string):void;
/**
* 显示多武将说话对话框
*
* @public
* @static
* @param {*} param
*/
public static Talks(param:any):void;
/**
* 显示确认对话框
*
* @public
* @static
* @param {string} msg
* @returns {boolean}
*/
public static Confirm(msg:string):boolean;
/**
* 显示菜单
*
* @public
* @static
* @param {*} param
* @returns {number}
*/
public static Menu(param:any):number;
/**
* 显示列表选择界面(例如选择武将界面)
*
* @public
* @static
* @param {ShowListParam} param
* @returns {number[]}
*/
public static ShowList(param:ShowListParam):number[];
/**
* 加载自定义UI文件
*
* @public
* @static
* @param {string} filename
*/
public static LoadWidget(filename:string):void;
/**
* 添加UI挂件
*
* @public
* @static
* @returns {Widget}
*/
//public static AddWidget():Widget;
/**
* 删除UI挂件
*
* @public
* @static
* @param {Widget} w
*/
//public static DelWidget(w:Widget):void;
/**
* 查询UI挂件
*
* @public
* @static
* @param {string} uri
* uri:UI挂件名字。可以是单纯德节点名字,也可以是完整路径
* 例如:GetWidget("button_ok");
* GetWidget("msg_box/button_ok");
*/
public static GetWidget(uri:string):Widget;
}
/**
* 路径搜索参数
*
* @class PathFindingParam
* @typedef {PathFindingParam}
*/
declare class PathFindingParam{
/**
* 源坐标
*
* @public
* @type {XY}
*/
public from:XY;
/**
* 目的坐标
*
* @public
* @type {XY}
*/
public to:XY;
}
/**
* 范围搜索参数
*
* @class GetRangeParam
* @typedef {GetRangeParam}
*/
declare class GetRangeParam{
/**
* 源坐标
*
* @public
* @type {XY}
*/
public from:XY;
/**
* 最大半径
*
* @public
* @type {number}
*/
public max_radius:number;
/**
* 最小半径
*
* @public
* @type {number}
*/
public min_radius:number;
}
/**
* 地图上物体类
*
* @class MapObject
* @typedef {MapObject}
*/
declare class MapObject{
/**
* id
*
* @public
* @type {number}
*/
public id:number;
/**
* 名字
*
* @public
* @type {string}
*/
public name:string;
/**
* 格子坐标(必填)
*
* @public
* @type {XY}
*/
public xy:XY;
/**
* 物理坐标
*
* @public
* @type {Vector3}
*/
public position:Vector3;
/**
* 缩放
*
* @public
* @type {number}
*/
public scale:Vector3;
/**
* 旋转
*
* @public
* @type {number}
*/
public rotate:Vector3;
/**
* 资源编号(必填)
*
* @public
* @type {string}
*/
public resid:string;
}
/**
* 地图控制类
*
* @class MAP
* @typedef {MAP}
*/
declare class MAP{
/**
* 地图宽度
*
* @public
* @static
* @readonly
* @type {number}
*/
public static readonly Width:number;
/**
* 地图高度
*
* @public
* @static
* @readonly
* @type {number}
*/
public static readonly Height:number;
/**
* 是否支持拖动
*
* @public
* @static
* @param {boolean} e
*/
public static EnableDrag(e:boolean):void;
/**
* 摄像机移动到指定坐标
*
* @public
* @static
* @param {XY} xy
*/
public static FocusTo(xy:XY):void;
/**
* 摄像机缩放
*
* @public
* @static
* @param {number} zoom
*/
public static ZoomTo(zoom:number):void;
/**
* 查询地图格子信息
*
* @public
* @static
* @param {XY} xy
* @returns {Tile}
*/
public static GetTile(xy:XY):Tile;
/**
* 点火
*
* @public
* @static
* @param {XY} xy
* @param {number} fireTurns
*/
public static SetFireTurns(xy:XY, fireTurns:number):void;
/**
* 获取火燃烧回合数
*
* @public
* @static
* @param {XY} xy
* @returns {number}
*/
public static GetFireTurns(xy:XY):number;
/**
* 根据坐标查询部队
*
* @public
* @static
* @param {XY} xy
* @returns {Army}
*/
public static GetArmy(xy:XY):Army;
/**
* 根据坐标查询建筑
*
* @public
* @static
* @param {XY} xy
* @returns {Facility}
*/
public static GetFacility(xy:XY):Facility;
/**
* 气泡对话框(部队头上那种)
*
* @public
* @static
* @param {XY} xy
* @param {string} msg
*/
public static BubbleTalk(xy:XY, msg:string):void;
/**
* 气泡弹文字(部队头上那种)
*
* @public
* @static
* @param {XY} xy
* @param {string} msg
*/
public static BubbleText(xy:XY, msg:string):void;
/**
* 路径计算
*
* @public
* @static
* @param {PathFindingParam} param
* @returns {XY[]}
*/
public static PathFinding(param:PathFindingParam):XY[];
/**
* 范围计算
*
* @public
* @static
* @param {GetRangeParam} param
* @returns {XY[]}
*/
public static GetRange(param:GetRangeParam):XY[];
/**
* 显示范围,并获取点击位置
*
* @public
* @static
* @param {XY[]} xylist
* @param {number} color 32位颜色RGBA编码
* @returns {XY}
*/
public static ShowIndicator(xylist:XY[], color:number):XY;
/**
* 关闭显示范围
*
* @public
* @static
*/
public static CloseIndicator():void;
/**
* 计算两个坐标的相对位置
*
* @public
* @static
* @param {XY} from
* @param {XY} to
* @returns {MAP_DIR}
*/
public static CalcDir(from:XY, to:XY):MAP_DIR;
/**
* 判断两个坐标是否在一条直线上
*
* @public
* @static
* @param {XY} from
* @param {XY} to
* @returns {boolean}
*/
public static InALine(from:XY, to:XY):boolean;
/**
* 判断某个坐标是否在屏幕内
*
* @public
* @static
* @param {XY} xy
* @returns {boolean}
*/
public static InScreen(xy:XY):boolean;
/**
* 在地图上显示一个模型
*
* @public
* @static
* @param {MapObject} obj
* @returns {number}
*/
public static AddMapObject(obj:MapObject):number;
/**
* 根据id查询模型
*
* @public
* @static
* @param {number} id
* @returns {MapObject}
*/
public static GetMapObject(id:number):MapObject;
/**
* 删除MapObject
*
* @public
* @static
* @param {number} id
*/
public static DelMapObject(id:number):void;
/**
* 播放特效
*
* @public
* @static
* @param {string} name
* @param {any} param
* 例:
* name=army_face_to
* param={
* xy:{x:100,y=200}
* };
*
* name=army_move_by_path
* param={
* path:[{x:1,y:1},{x:1,y:2},{x:2,y:2}]
* };
*/
public static PlayEffect(name:string, param:any):void;
}
/**
* 伤害数据类
*
* @class Damage
* @typedef {Damage}
*/
declare class Damage{
/**
* 士兵伤害
*
* @public
* @type {number}
*/
public soldier:number;
/**
* 耐久伤害
*
* @public
* @type {number}
*/
public hp:number;
}
/**
* 菜单元素类
*
* @class DynMenuItem
* @typedef {DynMenuItem}
*/
declare class DynMenuItem{
/**
* 菜单标题文字
*
* @public
* @type {string}
*/
public name:string;
/**
* 菜单是否可点击。不可点击为灰色。
*
* @public
* @type {boolean}
*/
public interactable:boolean;
/**
* 菜单是否可见。
*
* @public
* @type {boolean}
*/
public active:boolean;
/**
* 子菜单列表
*
* @public
* @type {DynMenuItem[]}
*/
public children:DynMenuItem[];
/**
* 菜单颜色。例如:#FF00FF
*
* @public
* @type {string}
*/
public color:string;
/**
* 菜单点击时的回调处理函数。如果有子菜单,本回调函数无效。
* 回调函数如果返回:
* true:表示本条指令执行完成。
* false:表示本条指令被取消。
*
* @public
* @type {((o:Army|Facility)=>boolean)}
*/
public callback:(o:Army|Facility)=>boolean;
}
declare class ArmyDeadReason{
public source_armyid:number;
public source_facilityid:number;
}
/**
* 回调函数。在游戏的过程中,如果开发者注册了这些回调,表示开发者想要介入这些过程。
*
* @class Sanlite2Handler
* @typedef {Sanlite2Handler}
*/
declare class Sanlite2Handler{
/**
* 新开剧本
*
* @public
* @type {()=>void}
*/
public OnStoryStart:()=>void;
/**
* 剧本保存时
*
* @public
* @type {()=>void}
*/
public OnStorySave:()=>void;
/**
* 读档
*
* @public
* @type {()=>void}
*/
public OnStoryLoad:()=>void;
/**
* 剧本结束(通关|玩家失败)
*
* @public
* @type {()=>void}
*/
public OnStoryEnd:()=>void;
/**
* 每一回合
*
* @public
* @type {()=>void}
*/
public OnNewTurn:()=>void;
/**
* 军团回合
*
* @public
* @type {(groupid:number, subgroupid:number)=>void}
*/
public OnSubgroupTurn:(groupid:number, subgroupid:number)=>void;
/**
* 势力灭亡
*
* @public
* @type {(groupid:number)=>void}
*/
public OnGroupDead:(groupid:number)=>void;
/**
* 武将死亡
*
* @public
* @type {(heroid:number)=>void}
*/
public OnHeroDead:(heroid:number)=>void;
/**
* 武将获得宝物
*
* @public
* @type {(heroid:number, itemid:number)=>void}
*/
public OnHeroGetItem:(heroid:number, itemid:number)=>void;
/**
* 建筑被摧毁
*
* @public
* @type {(facilityid:number, armyid:number)=>void}
*/
public OnFacilityDead:(facilityid:number, armyid:number)=>void;
/**
* AI部队行动前
*
* @public
* @type {(armyid:number)=>void}
*/
public OnArmyActionStart:(armyid:number)=>void;
/**
* AI部队行动后
*
* @public
* @type {(armyid:number)=>void}
*/
public OnArmyActionEnd:(armyid:number)=>void;
/**
* 部队解散
*
* @public
* @type {(armyid:number, reason:ArmyDeadReason)=>void}
*/
public OnArmyDead:(armyid:number, reason:ArmyDeadReason)=>void;
/**
* 单挑开始
*
* @public
* @type {(heroida:number, heroidb:number)=>void}
*/
public OnPKStart:(heroida:number, heroidb:number)=>void;
/**
* 单挑回合
*
* @public
* @type {(heroida:number, heroidb:number, turn:number)=>void}
*/
public OnPKTurn:(heroida:number, heroidb:number, turn:number)=>void;
/**
* 单挑结束
*
* @public
* @type {(heroida:number, heroidb:number, result:number)=>void}
*/
public OnPKEnd:(heroida:number, heroidb:number, result:number)=>void;
/**
* 舌战开始
*
* @public
* @type {(heroida:number, heroidb:number)=>void}
*/
public OnSZStart:(heroida:number, heroidb:number)=>void;
/**
* 舌战回合
*
* @public
* @type {(heroida:number, heroidb:number, turn:number)=>void}
*/
public OnSZTurn:(heroida:number, heroidb:number, turn:number)=>void;
/**
* 舌战结束
*
* @public
* @type {(heroida:number, heroidb:number, result:number)=>void}
*/
public OnSZEnd:(heroida:number, heroidb:number, result:number)=>void;
/**
* 检测游戏是否结束回调函数
* 返回:
* -1,由系统决定
* 0,游戏继续
* 1,玩家胜利
* 2,玩家失败
* 其他,没有结果,游戏继续
*
* @public
* @type {()=>number}
*/
public CheckGameEnd:()=>number;
/**
* 部队攻击部队伤害计算
* 如果返回非空,按本函数计算结果为准;
* 如果返回为空,按系统计算结果为准。
*
* @public
* @type {(armyida:number, armyidb:number, zfid:number, critical:boolean)=>Damage}
*/
public CalcAttackArmyArmy:(armyida:number, armyidb:number, zfid:number, critical:boolean)=>Damage;
/**
* 部队攻击建筑伤害计算
* 如果返回非空,按本函数计算结果为准;
* 如果返回为空,按系统计算结果为准。
*
* @public
* @param {number} armyid 被攻击方部队id
* @param {number} facilityid 攻击方设施id
* @returns {Damage} 攻击伤害计算结果。如果本函数返回非null,则以本函数返回值为准;如果返回值为null,则以系统函数计算结果为准。
*/
public CalcAttackArmyFacility:(armyid:number, facilityid:number)=>Damage;
/**
* 设施攻击部队伤害回调
* 如果返回非空,按本函数计算结果为准;
* 如果返回为空,按系统计算结果为准。
*
* @public
* @param {number} facilityid 攻击方设施id
* @param {number} armyid 被攻击方部队id
* @returns {Damage} 攻击伤害计算结果。如果本函数返回非null,则以本函数返回值为准;如果返回值为null,则以系统函数计算结果为准。
*/
public CalcAttackFacilityArmy:(facilityid:number, armyid:number)=>Damage;
/**
* 设施攻击设施伤害回调
* 如果返回非空,按本函数计算结果为准;
* 如果返回为空,按系统计算结果为准。
*
* @public
* @param {number} facilityida 攻击方设施id
* @param {number} facilityidb 被攻击方设施id
* @returns {Damage} 攻击伤害计算结果。如果本函数返回非null,则以本函数返回值为准;如果返回值为null,则以系统函数计算结果为准。
*/
public CalcAttackFacilityFacility:(facilityida:number, facilityidb:number)=>Damage;
/**
* 登用成功率计算回调
* 如果返回非空,按本函数计算结果为准;
* 如果返回为空,按系统计算结果为准。
*
* @public
* @param {number} heroida 执行登用武将id
* @param {number} heroidb 被执行登用武将id
* @returns {number} 成功率。范围0-1。如果返回值>=0,则以本函数返回值为准;如果返回值<0,则以系统函数计算结果为准。
*/
public CalcRecuitRate:(heroida:number, heroidb:number)=>number;
/**
* 技能成功率回调(未实现,待定)
*
* @public
* @param {number} armyida 施展技能的部队
* @param {number} armyidb 被施展技能的部队
* @returns {number} 成功率。范围0-1。如果返回值>=0,则以本函数返回值为准;如果返回值<0,则以系统函数计算结果为准。
*/
public CalcMagicRate:(armyida:number,armyidb:number)=>number;
/**
* 部队能力计算回调
*
* @public
* @param {number} armyid 部队id
* @returns {ArmyAttr} 部队能力的计算结果。如果本函数返回非null,则以本函数返回值为准;如果返回值为null,则以系统函数计算结果为准。
*/
public CalcArmyAttr:(armyid:number)=>ArmyAttr;
/**
* 修改被俘虏概率回调
*
* @public
* @param {number} source_armyid 击破部队、据点的部队id
* @param {number[]} destheroid 被处理俘虏武将id
* @returns {number} 俘虏概率。范围0-1.如果返回小于0,则以系统的计算结果为准。
*/
public CalcCaptiveRate:(source_armyid:number, destheroid:number)=>number;
/**
* 修改AI处理俘虏回调
*
* @public
* @param {number} sourceheroid 处理战俘的武将id
* @param {number[]} destheroid 被处理俘虏武将id
* @returns {number} 0:释放,1:俘虏,3:斩杀。如果返回小于0,则以系统计算结果为准。
*/
public CalcCaptiveResult:(sourceheroid:number, destheroid:number)=>number;
/**
* 修改都市开发中支持的建筑类型
* 具体建筑类型id请参考剧本编辑器【补丁】【建筑】页面。
*
* @public
* @param {number} cityid 对应的都市id。具体id值请参考剧本编辑器【据点】页面。
* @returns {number[]} 返回支持建造建筑的类型id列表。例如return [7,8,9];
*/
public CalcCityBuildFacilityTypes:(cityid:number)=>number[];
/**
* 修改部队支持修建建筑的建筑类型
* 具体建筑类型id请参考剧本编辑器【补丁】【建筑】页面。
*
* @public
* @param {number} armyid 对应的都市id。具体id值请参考剧本编辑器【据点】页面。
* @returns {number[]} 返回支持建造建筑的类型id列表。例如return [7,8,9];
*/
public CalcArmyBuildFacilityTypes:(armyid:number)=>number[];
/**
* 修改设施菜单回调
*
* @public
* @param {number} facilityid 当前操作的设施id
* @param {DynMenuItem[]} menu 设施操作菜单数据结构
* @returns {boolean} true:表示修改了菜单;false:未修改
*/
public ModifyFacilityMenu:(facilityid:number, menu:DynMenuItem[])=>boolean
/**
* 修改部队操作菜单回调。
* 指点击地图上本方部队时,屏幕右方弹出的菜单。
*
* @public
* @param {number} armyid 当前操作的部队id
* @param {DynMenuItem[]} menu 部队操作菜单数据结构
* @returns {boolean} true:表示修改了菜单;false:未修改
*/
public ModifyArmyMenu:(armyid:number, menu:DynMenuItem[])=>void
/**
* 修改系统菜单回调。
* 指游戏地图界面右下角的“系统”
*
* @public
* @param {DynMenuItem[]} menu 系统菜单数据结构
* @returns {boolean} true:表示修改了菜单;false:未修改
*/
public ModifySysMenu:(menu:DynMenuItem[])=>void
}
/**
* 向系统注册回调函数。表示脚本系统需要干预或者接管系统对应的处理流程。
*
* @param {Sanlite2Handler} params
*/
declare function RegGameHandler(params:Sanlite2Handler):void;
/**
* 加载其他js文件
*
* @param {string} scriptfilename
*/
declare function LoadScript(scriptfilename:string):void;