浏览代码

开发:支持beatByOrder属性

xlxin 2 年之前
父节点
当前提交
2a008e0c88
共有 7 个文件被更改,包括 36 次插入0 次删除
  1. 8 0
      datacpp/dataManager.cpp
  2. 5 0
      datacpp/elemPropertyData.cpp
  3. 2 0
      datahpp/dataManager.h
  4. 1 0
      datahpp/elemPropertyData.h
  5. 11 0
      mainwindow.cpp
  6. 2 0
      mainwindow.h
  7. 7 0
      mainwindow.ui

+ 8 - 0
datacpp/dataManager.cpp

@@ -154,6 +154,10 @@ void DataManager::changeIsContainerState(QString elem, int state)
 {
     elements[elem]->isContainer = state;
 }
+void DataManager::changeBeatByOrderState(QString elem, int state)
+{
+    elements[elem]->beatByOrder = state;
+}
 QString DataManager::getMarkValue(QString elem)
 {
     return elements[elem]->labelName;
@@ -190,6 +194,10 @@ bool DataManager::getIsContainerState(QString elem)
 {
     return elements[elem]->isContainer;
 }
+bool DataManager::getBeatByOrderState(QString elem)
+{
+    return elements[elem]->beatByOrder;
+}
 
 //状态与效果动画
 QVector<ElemPropertyData::StatusEffect> DataManager::getAnimVec(QString elem)

+ 5 - 0
datacpp/elemPropertyData.cpp

@@ -112,6 +112,9 @@ void ElemPropertyData::readData(const QJsonObject &json)
     if(json.contains("isContainer") && json["isContainer"].isBool()){
         isContainer = json["isContainer"].toBool();
     }
+    if(json.contains("beatByOrder") && json["isContainer"].isBool()){
+        beatByOrder = json["beatByOrder"].toBool();
+    }
     //状态与效果动画
     if(json.contains("anims") && json["anims"].isArray()){
         readStatusEffect(json["anims"].toArray());
@@ -146,6 +149,7 @@ void ElemPropertyData::writeData(QJsonObject &json) const
     json["canBeLinked"] = canBeLinked;
     json["canMoveAway"] = canMoveAway;
     json["isContainer"] = isContainer;
+    json["beatByOrder"] = beatByOrder;
     json.insert("anims",writeStatusEffect());
     json.insert("collAnim",writeCollAnim());
     json.insert("statusConfig",writeStatusConfigData());
@@ -408,6 +412,7 @@ void ElemPropertyData::exportData(QJsonObject &json) const
     //canDrop是一个bool值,导出的什么数据?在状态配置中导出?
     json["canMoveAway"] = canMoveAway;
     json["isContainer"] = isContainer;
+    json["beatByOrder"] = beatByOrder;
     json["beatScore"] = score.toInt();
     json["gridPos"] = exportGridPos();
     json["animation"] = exportAnim();

+ 2 - 0
datahpp/dataManager.h

@@ -35,6 +35,7 @@ public:
     void changeLinkedState(QString elem,int state);
     void changeMoveAwayState(QString elem,int state);
     void changeIsContainerState(QString elem,int state);
+    void changeBeatByOrderState(QString elem, int state);
     //基础属性值获取
     QString getMarkValue(QString elem);
     QString getPos(QString elem);
@@ -45,6 +46,7 @@ public:
     bool getLinkedState(QString elem);
     bool getMoveAwayState(QString elem);
     bool getIsContainerState(QString elem);
+    bool getBeatByOrderState(QString elem);
 
     //状态与效果动画
     QVector<ElemPropertyData::StatusEffect> getAnimVec(QString elem);

+ 1 - 0
datahpp/elemPropertyData.h

@@ -20,6 +20,7 @@ public:
     bool canBeLinked;
     bool canMoveAway;
     bool isContainer;
+    bool beatByOrder;
 
     //状态与效果动画
     struct StatusEffect{

+ 11 - 0
mainwindow.cpp

@@ -76,6 +76,9 @@ void MainWindow::setUi(QString elem)
     if(DataManager::getInstance()->getIsContainerState(elem)) ui->checkBox_isContainer->setCheckState(Qt::Checked);
     else ui->checkBox_isContainer->setCheckState(Qt::Unchecked);
 
+    if(DataManager::getInstance()->getBeatByOrderState(elem)) ui->checkBox_beatByOrder->setCheckState(Qt::Checked);
+    else ui->checkBox_beatByOrder->setCheckState(Qt::Unchecked);
+
     //设置四个子界面显示
     animUi->setUi(elem);
     collAnimUi->setUi(elem);
@@ -244,6 +247,14 @@ void MainWindow::on_checkBox_isContainer_stateChanged(int arg1)
     DataManager::getInstance()->changeIsContainerState(key,arg1);
 }
 
+///容器类型改变
+void MainWindow::on_checkBox_beatByOrder_stateChanged(int arg1)
+{
+    if(ui->listWidget_elem->currentItem() == nullptr) return;
+    QString key = ui->listWidget_elem->currentItem()->text();
+    DataManager::getInstance()->changeBeatByOrderState(key,arg1);
+}
+
 ///导出配置按钮按下
 void MainWindow::on_pushButton_exportConfig_clicked()
 {

+ 2 - 0
mainwindow.h

@@ -56,6 +56,8 @@ private slots:
 
     void on_checkBox_isContainer_stateChanged(int arg1);
 
+    void on_checkBox_beatByOrder_stateChanged(int arg1);
+
     void on_pushButton_exportConfig_clicked();
 
     void on_comboBox_dropConfig_currentIndexChanged(int index);

+ 7 - 0
mainwindow.ui

@@ -271,6 +271,13 @@
                 </property>
                </widget>
               </item>
+              <item>
+               <widget class="QCheckBox" name="checkBox_beatByOrder">
+                <property name="text">
+                 <string>按顺序打击</string>
+                </property>
+               </widget>
+              </item>
              </layout>
             </item>
            </layout>