public string StateToString(CharacterInfo.eState state) { switch (state) { case CharacterInfo.eState.Attack_Before: return("Attack_Before"); case CharacterInfo.eState.Attack_After: return("Attack_After"); case CharacterInfo.eState.Block_Before: return("Block_Before"); case CharacterInfo.eState.Block_After: return("Block_After"); case CharacterInfo.eState.Idle: return("Idle"); } return("None"); }
/// <summary> /// Succeeds the attack. /// </summary> /// <returns> /// none = 0 , 1p => 1 , 2p => 2 /// </returns> public Result Valid_Attack() { //todo : 거리에 대한 처리 추가 해야 함 CharacterInfo.eState state1p = _ref_1pInfo.CurrentState(); CharacterInfo.eState state2p = _ref_2pInfo.CurrentState(); Result result = new Result(eState.None, eState.None); //attack if (true == _ref_1pInfo.Valid_Attack() && false == _ref_2pInfo.Valid_Block()) { //!!!!!!//!!!!!!//!!!!!!//!!!!!!//!!!!!!//!!!!!! result.state_1p = eState.AttackSucceed; //!!!!!!//!!!!!!//!!!!!!//!!!!!!//!!!!!!//!!!!!! if (CharacterInfo.eState.Block_Before == state2p || CharacterInfo.eState.Block_After == state2p) { result.state_2p = eState.BlockFail; } else { result.state_2p = eState.None; } } if (true == _ref_2pInfo.Valid_Attack() && false == _ref_1pInfo.Valid_Block()) { if (CharacterInfo.eState.Block_Before == state1p || CharacterInfo.eState.Block_After == state1p) { result.state_1p = eState.BlockFail; } else { result.state_1p = eState.None; } //!!!!!!//!!!!!!//!!!!!!//!!!!!!//!!!!!!//!!!!!! result.state_2p = eState.AttackSucceed; //!!!!!!//!!!!!!//!!!!!!//!!!!!!//!!!!!!//!!!!!! } //block if (CharacterInfo.eState.Block_Before == state1p || CharacterInfo.eState.Block_After == state1p) { if (true == _ref_1pInfo.Valid_Block()) { if (true == _ref_2pInfo.Valid_Attack()) { result.state_1p = eState.BlockSucceed; result.state_2p = eState.AttackFail; } else { result.state_1p = eState.BlockIdle; } } } if (CharacterInfo.eState.Block_Before == state2p || CharacterInfo.eState.Block_After == state2p) { if (true == _ref_2pInfo.Valid_Block()) { if (true == _ref_1pInfo.Valid_Attack()) { result.state_2p = eState.BlockSucceed; result.state_1p = eState.AttackFail; } else { result.state_2p = eState.BlockIdle; } } } return(result); }