This project is read-only.
This page containing something which we recommend you not only read but also remember.
本文对于开发是相当重要的,建议熟记。

Relative page: Controller and Host Models
配合Controller and Host Models看效果更加拔群。

注意AtkContext与DefContext(s)是树形关系,Atk是树根,Def是树叶,没有中间层
攻击技能一定会用到这两个Context,变化技能可能会用到

AtkContext

Controller
访问到此次对战Controller
Attacker
攻击方,如果是预知未来,记录的也是真实的攻击方
对于XX誓言,记录的应该是“后使用技能者”
MoveProxy
选择的技能,譬如压力、诅咒身躯针对摇手指梦话等
Move
执行的技能,如使用摇手指,此技能会是被摇出来的技能
Type
技能类型,因为普通皮肤的存在
Move.Category
访问技能所属类型
AccuracyModifier
命中率修正
MultiTargets
IsMultiTargets,是否命中了多目标
此属性等同于Targets.Count() > 1,效率较高
CTLv
记录攻击方的修正后CT等级
AtkRaw
记录攻击方的原始攻击力
AtkLv
记录攻击方的攻击等级,只是记录不代表使用了
注意此处未必等同于访问Attaker.OnboardPokemon.Lv5D.Atk/SpAtk,因为祖翼鸟群殴的测试表明攻击方的攻击力只算一次
AtkModifier
记录攻击方的修正,为后期计算使用
注意此处未必等同于访问Attaker.OnboardPokemon.Lv5D.Atk/SpAtk,因为祖翼鸟群殴的测试表明攻击方的攻击力修正除了厚脂肪只算一次
Times
连续攻击的攻击次数
SheerForceActive
IsSheerForceAvailable,看汇编文章说全力攻击有效的技能有flag,找了半天没找到,于是自己写了这个...
其实写成MoveType的扩展方法更合适,为了性能...
WeatherModifier/STAB
http://www.smogon.com/bw/articles/bwcompletedamage_formula#attack-mod
要访问天气请走Controller.GetAvailableWeather()
要无视天气锁特性的访问天气请走Controller.Board.Weather
PowerModifier_Item/PowerModifier_Board
技能威力修正,宝石的行为使我有充分的把握这东西只算一次
Targets
技能目标,完全没有效果的没有命中的已经被T除了
SetTargets只能被调用一次
Target
技能目标,等同于Targets.First()

DefContext

AtkContext
可以访问到该DefContext所对应的攻击方信息
Defender
防御方
Damage
计算出的伤害,会改动伤害的不仅有Calculate,还有实现阶段,主要是为了反击一类的技能
BasePower
技能威力,威力是与防御方相关的
IsCt
此次攻击是否Ct
HitSubstitute
命中的是否是替身
EffectRevise
属性修正,注意这儿是位运算,1代表*2,-1代表/2,已经被编入Targets的DefContext如果还有-0x7f只能说明程序有问题,-0x7f应该提前显示“完全没有效果”后被T除了
NoGuard
攻击方与防御方只要有一个是无防御/心眼/锁定这儿就是true
Ability
防御方的特性,不同于Defender.Ability,如果攻击方是破格这儿始终会返回“NULL_ABILITY”
绝不会返回null,不会有null reference异常
bool HasInfiltratableCondition(string condition)
是否有可被穿透的场地状态,攻击方是否是穿透特性与防御方攻击方是否同队都判断过了

Last edited Jun 29, 2012 at 5:39 PM by Snowy, version 1

Comments

No comments yet.