//----------------------------------------------------------------ButtonFunctionArea----------------------------------------------------------------// public void SetBattleQueue() { //予めデリゲートに関数を登録 SomeAttack attackToEnemy = new SomeAttack(AttackToEnemy); SomeAttack attackToParty = new SomeAttack(AttackToParty); foreach (Data Value in agilityOrder) //DictionaryのValue値をもとに攻撃デリゲートがQueueされていく(Magic関数などもいる) { if (Value.KindOfChar != Data.Kind_Char.ENEMY) { if (Value.KindOfCommand == Data.Kind_Command.ATTACK) { commandQueue.Enqueue(attackToEnemy); //DataにEnum型のATTACK、MAGIC...を用意してif文でEnqueueするSomeAttack関数を変える } else if (Value.KindOfCommand == Data.Kind_Command.ATTACKMAGIC) { ; } } else if (Value.KindOfChar == Data.Kind_Char.ENEMY) { if (Value.KindOfCommand == Data.Kind_Command.ATTACK) { commandQueue.Enqueue(attackToParty); //DataにEnum型のATTACK、MAGIC...を用意してif文でEnqueueするSomeAttack関数を変える } else if (Value.KindOfCommand == Data.Kind_Command.ATTACKMAGIC) { ; } } } }
public void AttackUser(SomeAttack someAttack) { SaveStats(); double punch = Bot.Unit.TakePunch(someAttack()); log.logSaveAttack(Player.Name, punch); }