OSDN Git Service

723e1c162a4977dbb0fc3af345584c3b4136b58c
[moflib/moflib.git] / saisei-1.0 / rpg / rpg / oldcode / FightingMenu.cpp
1 #include "FightingMenu.h"
2 #include "mof/KeyFrameAnimation.h"
3 #include "MyWindow.h"
4 #include "TargetMenu.h"
5 #include "IdealMenu.h"
6 #include "UsingBattleItemMenu.h"
7 #include "ItemMenu.h"
8 #include "BattlerGroup.h"
9 #include "BattlerFacade.h"
10
11 et::FightingMenu::FightingMenu( mof::TextureManager* pTextureManager  , et::BattleData* pBattleData )
12 : et::MyFrame(mof::Line2D( 0 , 0 , 200 , 300) , true , pTextureManager->getResource(_T("image/frame0.png")) )
13 {
14         m_pBattleData = pBattleData;
15
16         m_pSelector = NULL;
17         m_pTextureManager = pTextureManager;
18         std::vector<mof::Window*> selectables;
19
20         mof::Window* pSelectable = NULL;
21         et::BattlerFacade* pHero = m_pBattleData->getBattlerGroup()->getHeroBattler();
22         pSelectable = addSelectableTextItem(this , selectables , _T("\82±\82¤\82°\82«(AP-3)") , 16);
23         if(pHero->getParameter().actionPoint < 3)pSelectable->setAvailable(false);
24         pSelectable = addSelectableTextItem(this , selectables , _T("\90_\97ì(AP-5)") , 16);
25         if(pHero->getParameter().actionPoint < 5)pSelectable->setAvailable(false);
26         pSelectable = addSelectableTextItem(this , selectables , _T("\83A\83C\83e\83\80(AP-2)") , 16);
27         if(pHero->getParameter().actionPoint < 2)pSelectable->setAvailable(false);
28         pSelectable = addSelectableTextItem(this , selectables , _T("\82Ú\82¤\82¬\82å(AP-1)") , 16);
29         if(pHero->getParameter().actionPoint < 1)pSelectable->setAvailable(false);
30         m_pSelector = new mof::SelectionModel(selectables , mof::AnimationResource());
31         setVisible(true);
32 }
33
34 et::FightingMenu::~FightingMenu(void)
35 {
36         delete m_pSelector;
37 }
38
39
40
41
42
43 void et::FightingMenu::setVisible(bool visible){
44         et::MyFrame::setVisible(visible);
45         if(visible){
46                 mof::KeyFrameAnimation* pAnimation = new mof::KeyFrameAnimation();
47                 pAnimation->setPosition(0 , mof::Vector2D(-200 ,370));
48                 pAnimation->setPosition(15 , mof::Vector2D(10 , 370));
49                 mof::AnimationResource resource(pAnimation);
50                 m_pSelector->setMenuAnimation(resource);
51                 setAnimation(0 , resource);
52         }
53         else {
54                 mof::KeyFrameAnimation* pAnimation = new mof::KeyFrameAnimation();
55                 pAnimation->setPosition(0 , mof::Vector2D(10 , 370));
56                 pAnimation->setPosition(15 , mof::Vector2D(-200 , 370));
57                 mof::AnimationResource resource(pAnimation);
58                 m_pSelector->setMenuAnimation(resource);
59                 setAnimation(0 , resource);
60         }
61 }
62
63 et::MyFrame* et::FightingMenu::performAction(){
64         
65         switch(getSelectionModel()->getSelectingIndex()){
66                 case 0 : //\82±\82¤\82°\82«
67                         {
68                                 et::BattleAction action;
69                                 action.type = et::BattleAction::ATTACK_WEAPON;
70                                 return new TargetMenu(m_pTextureManager , m_pBattleData , action , 160);
71                         }
72                 case 1 : //\82µ\82ñ\82ê\82¢
73                         return new IdealMenu(m_pTextureManager , m_pBattleData);
74                 case 2 : //\83A\83C\83e\83\80
75                         {
76                                 et::ItemOperatorFactory* pOperationMenuFactory = new UsingBattleItemMenuFactory(m_pTextureManager , m_pBattleData);
77                                 return new et::ItemMenu( m_pTextureManager ,  m_pBattleData->getItemList() , pOperationMenuFactory);
78                         }
79                 case 3 : //\82Ú\82¤\82¬\82å
80                         {
81                                 et::BattleAction action;
82                                 action.type = et::BattleAction::GUARD;
83                                 //\83K\81[\83h\8fó\91Ô\82É
84                                 et::BattlerParameter parameter = m_pBattleData->getBattlerGroup()->getHeroBattler()->getParameter();
85                                 parameter.guard = true;
86                                 parameter.dActionPoint -= 1;
87                                 m_pBattleData->getBattlerGroup()->getHeroBattler()->setParameter(parameter);
88                                 m_pBattleData->setBattleAction(action);
89                                 return this;
90                         }
91                 default :
92                         DEBUG_PRINT("\96¢\92è\8b`\82Ì\83A\83N\83V\83\87\83\93\82ª\97v\8b\81\82³\82ê\82Ü\82µ\82½");
93                         return NULL;
94         }
95 }
96
97
98
99 mof::Window* et::FightingMenu::addSelectableTextItem(mof::Window* pOwner, std::vector<mof::Window*>& selectables , TCHAR* text , int size){
100         mof::Window* pSelectable = new et::MyWindow(mof::Sprite::createSpriteFromText(text , size) , m_pTextureManager);
101         pOwner->add(pSelectable);
102         selectables.push_back(pSelectable);
103         return pSelectable;
104 }