ファイアーエムブレム聖戦の系譜リメイク作ろうぜ
1- 20
431:396
2013/10/30(水) 00:03:03.70 ID:bgx4tYkk0
必殺剣判定ロジックを作りました。getDamageメソッドは現在実装中
参考:
note.chiebukuro.yahoo.co.jp

// myself→攻撃者entity、
// enemy→防御者entity、
// range→彼我距離、
// correncitonValue→補正値 ※地形・指揮官・恋人すべての補正
// isRenzoku→連続かどうか ※外からこのメソッドを呼ぶ場合は常にfalse
// null =ミス、プラス = 敵へのダメージ、マイナス = 自分への回復
// もし敵が「待ち伏せ」を持っていれば、このメソッドを呼ぶ順番を自分→敵から敵→味方に変更
// もし味方か敵が「突撃」を持っていれば、このメソッドを味方、敵で呼んだあとに判定を行い、再びこのメソッドを呼ぶ(何度も可能)
public List attack(Unit myself , Unit enemy,int range,int correctionValue,boolean isRenzoku) {
List damages = new ArrayList();
List mySkill = myself.getSkillList();
List enemySkill = enemy.getSkillList();

// 射程外の場合はスキップ
if(myself.getDirectWeapon().getMaxRange() < range || range < myself.getDirectWeapon().getMinRange()
|| myself.getIndirectWeapon().getMaxRange() < range || range < myself.getIndirectWeapon().getMinRange()
){
return damages;
}

// 流星剣判定 ※剣技は技%
if(!enemySkill.contains("見切り") && mySkill.contains("流星剣") && new Random(100) < myself.getSklPoint() ) {
for(int i=0; i<5; i++){ // 五回ダメージ判定を行い、ダメージに追加する
damages.add(getDamage(myself ,enemy,0,range,correctionValue));
}
// 月光剣判定 ※剣技は技%
} else if(!enemySkill.contains("見切り") && mySkill.contains("月光剣") && new Random(100) < myself.getSklPoint() ){
damages.add(getDamage(myself ,enemy,1,range,correctionValue));
}
// 太陽剣判定 ※剣技は技%
} else if(!enemySkill.contains("見切り") && mySkill.contains("太陽剣") && new Random(100) < myself.getSklPoint() ){
damages.add(getDamage(myself ,enemy,2,range,correctionValue));
// 通常判定
} else{
damages.add(getDamage(myself ,enemy,0,range,correctionValue));
}
// 連続判定 ※連続は一度のみしか判定しない
if(!isRenzoku && !enemySkill.contains("見切り") && mySkill.contains("連続") && new Random(100) < myself.getSklPoint()){
// このメソッドを再び呼ぶ。
   damages.addAll(attack(myself,enemy,range,correctionValue,true));
}
}



<<前のレス[*]次のレス[#]>>
516Res/288.26 KB
↑[8] 前[4] 次[6] 書[5] 板[3] 1-[1] l20




VIPサービス増築中!
携帯うpろだ|隙間うpろだ
Powered By VIPservice