///|
/// spawn 当前进行中的孵化任务观察视图。
pub struct Spawning {
priv raw : @raw.JsSpawning
}
///|
/// 从 raw spawning 构造高层视图。通常下游无需直接调用。
pub fn Spawning::create(raw : @raw.JsSpawning) -> Spawning {
Spawning::{ raw, }
}
///|
/// 返回底层 raw spawning 句柄。通常下游无需直接调用。
pub fn Spawning::to_raw(self : Spawning) -> @raw.JsSpawning {
self.raw
}
///|
/// 返回这次孵化总共需要的时间。
pub fn Spawning::need_time(self : Spawning) -> Int {
self.raw.need_time()
}
///|
/// 返回当前剩余的孵化时间。
pub fn Spawning::remaining_time(self : Spawning) -> Int {
self.raw.remaining_time()
}
///|
/// 返回当前正在被孵化的 creep。
pub fn Spawning::creep(self : Spawning) -> Creep {
Creep::create(self.raw.creep())
}
///|
/// StructureSpawn 的通用观察视图。
pub struct StructureSpawn {
priv raw : @raw.JsStructureSpawn
priv relation : Relation
}
///|
/// 己方 spawn 的强约束视图。
pub struct MySpawn {
priv raw : @raw.JsStructureSpawn
}
///|
/// 敌方 spawn 的强约束视图。
pub struct EnemySpawn {
priv raw : @raw.JsStructureSpawn
}
///|
/// 从 raw spawn 构造通用 spawn 视图。通常下游无需直接调用。
pub fn StructureSpawn::create(raw : @raw.JsStructureSpawn) -> StructureSpawn {
StructureSpawn::{ raw, relation: relation_of_my_flag(raw.my().to_option()) }
}
///|
/// 从 raw spawn 构造己方 spawn 视图。通常下游无需直接调用。
pub fn MySpawn::create(raw : @raw.JsStructureSpawn) -> MySpawn {
MySpawn::{ raw, }
}
///|
/// 从 raw spawn 构造敌方 spawn 视图。通常下游无需直接调用。
pub fn EnemySpawn::create(raw : @raw.JsStructureSpawn) -> EnemySpawn {
EnemySpawn::{ raw, }
}
///|
/// 返回底层 raw spawn 句柄。通常下游无需直接调用。
pub fn StructureSpawn::to_raw(self : StructureSpawn) -> @raw.JsStructureSpawn {
self.raw
}
///|
/// 返回底层 raw spawn 句柄。通常下游无需直接调用。
pub fn MySpawn::to_raw(self : MySpawn) -> @raw.JsStructureSpawn {
self.raw
}
///|
/// 返回底层 raw spawn 句柄。通常下游无需直接调用。
pub fn EnemySpawn::to_raw(self : EnemySpawn) -> @raw.JsStructureSpawn {
self.raw
}
///|
/// 将 spawn 转成通用 `GameObject` 视图。
pub fn StructureSpawn::as_game_object(self : StructureSpawn) -> GameObject {
GameObject::create(self.raw.to_game_object())
}
///|
/// 将己方 spawn 转成通用 `GameObject` 视图。
pub fn MySpawn::as_game_object(self : MySpawn) -> GameObject {
GameObject::create(self.raw.to_game_object())
}
///|
/// 将敌方 spawn 转成通用 `GameObject` 视图。
pub fn EnemySpawn::as_game_object(self : EnemySpawn) -> GameObject {
GameObject::create(self.raw.to_game_object())
}
///|
/// 返回 spawn 的敌我关系。
pub fn StructureSpawn::relation(self : StructureSpawn) -> Relation {
self.relation
}
///|
/// 返回固定为己方的敌我关系。
pub fn MySpawn::relation(_self : MySpawn) -> Relation {
Mine
}
///|
/// 返回固定为敌方的敌我关系。
pub fn EnemySpawn::relation(_self : EnemySpawn) -> Relation {
Enemy
}
///|
/// 返回该 spawn 是否属于己方。
pub fn StructureSpawn::is_my(self : StructureSpawn) -> Bool {
self.relation == Mine
}
///|
/// 返回该 spawn 是否属于敌方。
pub fn StructureSpawn::is_enemy(self : StructureSpawn) -> Bool {
self.relation == Enemy
}
///|
/// 返回 `true`,表示这是己方 spawn 视图。
pub fn MySpawn::is_my(_self : MySpawn) -> Bool {
true
}
///|
/// 返回 `false`,表示这不是敌方 spawn 视图。
pub fn MySpawn::is_enemy(_self : MySpawn) -> Bool {
false
}
///|
/// 返回 `false`,表示这不是己方 spawn 视图。
pub fn EnemySpawn::is_my(_self : EnemySpawn) -> Bool {
false
}
///|
/// 返回 `true`,表示这是敌方 spawn 视图。
pub fn EnemySpawn::is_enemy(_self : EnemySpawn) -> Bool {
true
}
///|
/// 若当前 spawn 属于己方,则转成 `MySpawn` 视图。
pub fn StructureSpawn::as_my(self : StructureSpawn) -> MySpawn? {
if self.relation == Mine {
Some(MySpawn::{ raw: self.raw })
} else {
None
}
}
///|
/// 若当前 spawn 属于敌方,则转成 `EnemySpawn` 视图。
pub fn StructureSpawn::as_enemy(self : StructureSpawn) -> EnemySpawn? {
if self.relation == Enemy {
Some(EnemySpawn::{ raw: self.raw })
} else {
None
}
}
///|
/// 将己方 spawn 放宽成通用 `StructureSpawn` 视图。
pub fn MySpawn::as_structure_spawn(self : MySpawn) -> StructureSpawn {
StructureSpawn::{ raw: self.raw, relation: Mine }
}
///|
/// 将敌方 spawn 放宽成通用 `StructureSpawn` 视图。
pub fn EnemySpawn::as_structure_spawn(self : EnemySpawn) -> StructureSpawn {
StructureSpawn::{ raw: self.raw, relation: Enemy }
}
///|
/// 返回 spawn 的唯一 id。
pub fn StructureSpawn::id(self : StructureSpawn) -> String {
self.as_game_object().id()
}
///|
/// 返回己方 spawn 的唯一 id。
pub fn MySpawn::id(self : MySpawn) -> String {
self.as_game_object().id()
}
///|
/// 返回敌方 spawn 的唯一 id。
pub fn EnemySpawn::id(self : EnemySpawn) -> String {
self.as_game_object().id()
}
///|
/// 返回 spawn 当前的 x 坐标。
pub fn StructureSpawn::x(self : StructureSpawn) -> Int {
self.as_game_object().x()
}
///|
/// 返回己方 spawn 当前的 x 坐标。
pub fn MySpawn::x(self : MySpawn) -> Int {
self.as_game_object().x()
}
///|
/// 返回敌方 spawn 当前的 x 坐标。
pub fn EnemySpawn::x(self : EnemySpawn) -> Int {
self.as_game_object().x()
}
///|
/// 返回 spawn 当前的 y 坐标。
pub fn StructureSpawn::y(self : StructureSpawn) -> Int {
self.as_game_object().y()
}
///|
/// 返回己方 spawn 当前的 y 坐标。
pub fn MySpawn::y(self : MySpawn) -> Int {
self.as_game_object().y()
}
///|
/// 返回敌方 spawn 当前的 y 坐标。
pub fn EnemySpawn::y(self : EnemySpawn) -> Int {
self.as_game_object().y()
}
///|
/// 返回 spawn 当前是否仍存在于场上。
pub fn StructureSpawn::exists(self : StructureSpawn) -> Bool {
self.as_game_object().exists()
}
///|
/// 返回己方 spawn 当前是否仍存在于场上。
pub fn MySpawn::exists(self : MySpawn) -> Bool {
self.as_game_object().exists()
}
///|
/// 返回敌方 spawn 当前是否仍存在于场上。
pub fn EnemySpawn::exists(self : EnemySpawn) -> Bool {
self.as_game_object().exists()
}
///|
/// 返回 spawn 的存储视图。
pub fn StructureSpawn::store(self : StructureSpawn) -> Store {
Store::create(self.raw.store())
}
///|
/// 返回己方 spawn 的存储视图。
pub fn MySpawn::store(self : MySpawn) -> Store {
Store::create(self.raw.store())
}
///|
/// 返回敌方 spawn 的存储视图。
pub fn EnemySpawn::store(self : EnemySpawn) -> Store {
Store::create(self.raw.store())
}
///|
/// 返回 spawn 当前的孵化任务;若当前未在孵化,则返回 None。
pub fn StructureSpawn::spawning(self : StructureSpawn) -> Spawning? {
self.raw.spawning().to_option().map(Spawning::create)
}
///|
/// 返回己方 spawn 当前的孵化任务;若当前未在孵化,则返回 None。
pub fn MySpawn::spawning(self : MySpawn) -> Spawning? {
self.raw.spawning().to_option().map(Spawning::create)
}
///|
/// 返回敌方 spawn 当前的孵化任务;若当前未在孵化,则返回 None。
pub fn EnemySpawn::spawning(self : EnemySpawn) -> Spawning? {
self.raw.spawning().to_option().map(Spawning::create)
}
///|
/// 返回 spawn 当前生命值。
pub fn StructureSpawn::hits(self : StructureSpawn) -> Int {
self.raw.hits()
}
///|
/// 返回己方 spawn 当前生命值。
pub fn MySpawn::hits(self : MySpawn) -> Int {
self.raw.hits()
}
///|
/// 返回敌方 spawn 当前生命值。
pub fn EnemySpawn::hits(self : EnemySpawn) -> Int {
self.raw.hits()
}
///|
/// 返回 spawn 最大生命值。
pub fn StructureSpawn::hits_max(self : StructureSpawn) -> Int {
self.raw.hits_max()
}
///|
/// 返回己方 spawn 最大生命值。
pub fn MySpawn::hits_max(self : MySpawn) -> Int {
self.raw.hits_max()
}
///|
/// 返回敌方 spawn 最大生命值。
pub fn EnemySpawn::hits_max(self : EnemySpawn) -> Int {
self.raw.hits_max()
}