Skip to content

Commit

Permalink
update: 宴会轮换规则更新
Browse files Browse the repository at this point in the history
  • Loading branch information
haoyun0 committed Jun 9, 2023
1 parent d8c7bb6 commit a127334
Show file tree
Hide file tree
Showing 2 changed files with 205 additions and 7 deletions.
4 changes: 2 additions & 2 deletions config.hpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#ifndef CONFIG_HPP
#define CONFIG_HPP

#define NUM_GUESTS 3
#define NUM_GUESTS 2
#define DISH_PER_CHEF 3
#define CHEFS_PER_GUEST 3
#define NUM_CHEFS (NUM_GUESTS * CHEFS_PER_GUEST)

#define MODE 1 // 1:宴会模式; 2:限时任务
#define TARGET_SCORE_APPROXIMATE 4650000
#define TARGET_SCORE_APPROXIMATE 2000000
// 预期达到的分数
// 如果是限时任务,这里输分数线
// 如果是宴会模式,不用特别准,差两倍/一半以内都可以
Expand Down
208 changes: 203 additions & 5 deletions src/banquetRule.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ int banquetRule4(BanquetStrictRule **, BanquetLenientRule **, States &, int);
int banquetRule5(BanquetStrictRule **, BanquetLenientRule **, States &, int);
//风云宴 铁拐李
int banquetRule6(BanquetStrictRule **, BanquetLenientRule **, States &, int);
//风云宴 何仙姑2
int banquetRule7(BanquetStrictRule **, BanquetLenientRule **, States &, int);
//风云宴 胡喜媚
int banquetRule8(BanquetStrictRule **, BanquetLenientRule **, States &, int);


/**
Expand All @@ -36,11 +40,8 @@ void banquetRule(BanquetRule *const &rule, States &s, int *bestfull) {
strictRule[i] = &rule[i].strictRule;
lenientRule[i] = &rule[i].lenientRule;
}


bestfull[0] = banquetRule0(strictRule, lenientRule, s, 0);
bestfull[1] = banquetRule5(strictRule, lenientRule, s, 1);
bestfull[2] = banquetRule6(strictRule, lenientRule, s, 2);
bestfull[0] = banquetRule7(strictRule, lenientRule, s, 0);
bestfull[1] = banquetRule8(strictRule, lenientRule, s, 1);
return;
}

Expand Down Expand Up @@ -734,4 +735,201 @@ int banquetRule6(BanquetStrictRule **strictRule, BanquetLenientRule **lenientRul
return 30;
}

//风云宴 何仙姑2
int banquetRule7(BanquetStrictRule **strictRule, BanquetLenientRule **lenientRule, States &s, int rank) {
int d = rank * DISH_PER_CHEF * CHEFS_PER_GUEST;
// 第1轮
// 条件:三道炒:下两阶段切技法料理售价+50%
if (s.recipe[d + 0]->cookAbility.stirfry > 0 &&
s.recipe[d + 1]->cookAbility.stirfry > 0 &&
s.recipe[d + 2]->cookAbility.stirfry > 0) {
for (int i = d + 3; i < d + 9; i++) {
if (s.recipe[i]->cookAbility.knife > 0) {
strictRule[i]->addRule.buff += 50;
}
}
}
// 条件:三道切:下阶段切技法料理饱腹感-1
if (s.recipe[d + 0]->cookAbility.knife > 0 &&
s.recipe[d + 1]->cookAbility.knife > 0 &&
s.recipe[d + 2]->cookAbility.knife > 0) {
for (int i = d + 3; i < d + 6; i++) {
if (s.recipe[i]->cookAbility.knife > 0) {
strictRule[i]->addRule.full += -1;
}
}
}
// 条件:四火: 本道料理售价-100%
for (int i = d + 0; i < d + 3; i++) {
if (s.recipe[i]->rarity == 4) {
lenientRule[i]->addRule.buff += -100;
break;
}
}
// 条件:五火: 本道料理售价-100%
for (int i = d + 0; i < d + 3; i++) {
if (s.recipe[i]->rarity == 5) {
lenientRule[i]->addRule.buff += -100;
break;
}
}

// 第2轮
// 条件:五火: 本道料理售价-100%
for (int i = d + 3; i < d + 6; i++) {
if (s.recipe[i]->rarity == 5) {
lenientRule[i]->addRule.buff += -100;
break;
}
}
// 条件:神:下道料理意图生效次数+1
for (int i = d + 3; i < d + 5; i++) {
if (s.chef[i/3]->skill.ability / s.recipe[i]->cookAbility >= 4) {
lenientRule[i+1]->oneMore();
break;
}
}
// 条件:传:本道料理基础售价+50%
for (int i = d + 3; i < d + 6; i++) {
if (s.chef[i/3]->skill.ability / s.recipe[i]->cookAbility >= 5) {
lenientRule[i]->baseRule.buff += 50;
break;
}
}
// 条件:烤:本道料理基础售价+50%
for (int i = d + 3; i < d + 6; i++) {
if (s.recipe[i]->cookAbility.bake > 0) {
lenientRule[i]->baseRule.buff += 50;
break;
}
}


// 第3轮
// 条件:五火: 本道料理售价-100%
for (int i = d + 6; i < d + 9; i++) {
if (s.recipe[i]->rarity == 5) {
lenientRule[i]->addRule.buff += -100;
break;
}
}
// 条件:传:本道料理饱腹感+3
for (int i = d + 6; i < d + 9; i++) {
if (s.chef[i/3]->skill.ability / s.recipe[i]->cookAbility >= 5) {
lenientRule[i]->addRule.full += 3;
break;
}
}
// 条件:三火: 本道料理饱腹感-3
for (int i = d + 6; i < d + 9; i++) {
if (s.recipe[i]->rarity == 3) {
lenientRule[i]->addRule.full += -3;
break;
}
}
// 条件:苦: 本道料理饱腹感-5
for (int i = d + 6; i < d + 9; i++) {
if (s.recipe[i]->flavor.bitter) {
lenientRule[i]->addRule.full += -5;
break;
}
}
return 25;
}

//风云宴 胡喜媚
int banquetRule8(BanquetStrictRule **strictRule, BanquetLenientRule **lenientRule, States &s, int rank) {
int d = rank * DISH_PER_CHEF * CHEFS_PER_GUEST;
// 第1轮
// 条件:三火: 下道料理饱腹感-3
for (int i = d + 0; i < d + 2; i++) {
if (s.recipe[i]->rarity == 3) {
lenientRule[i+1]->addRule.full += -3;
break;
}
}
// 条件:四火: 下道料理饱腹感-2
for (int i = d + 0; i < d + 2; i++) {
if (s.recipe[i]->rarity == 4) {
lenientRule[i+1]->addRule.full += -2;
break;
}
}
// 条件:五火: 本道料理售价+100%
for (int i = d + 0; i < d + 3; i++) {
if (s.recipe[i]->rarity == 5) {
lenientRule[i]->addRule.buff += 100;
break;
}
}
// 条件:煮: 下道料理饱腹感-2
for (int i = d + 0; i < d + 2; i++) {
if (s.recipe[i]->cookAbility.boil > 0) {
lenientRule[i+1]->addRule.full += -2;
break;
}
}

// 第2轮
// 条件:神:下道料理意图生效次数+1
for (int i = d + 3; i < d + 5; i++) {
if (s.chef[i/3]->skill.ability / s.recipe[i]->cookAbility >= 4) {
lenientRule[i+1]->oneMore();
break;
}
}
// 条件:四火:本道料理饱腹感-3
for (int i = d + 3; i < d + 6; i++) {
if (s.recipe[i]->rarity == 4) {
lenientRule[i]->addRule.full += -3;
break;
}
}
// 条件:切:本道料理基础售价+50%
for (int i = d + 3; i < d + 6; i++) {
if (s.recipe[i]->cookAbility.knife) {
lenientRule[i]->baseRule.buff += 50;
break;
}
}
// 条件:酸:本道料理基础售价+50%
for (int i = d + 3; i < d + 6; i++) {
if (s.recipe[i]->flavor.sour) {
lenientRule[i]->baseRule.buff += 50;
break;
}
}

// 第3轮
// 条件:传:本道料理售价+100%
for (int i = d + 6; i < d + 9; i++) {
if (s.chef[i/3]->skill.ability / s.recipe[i]->cookAbility >= 5) {
lenientRule[i]->addRule.buff += 100;
break;
}
}
// 条件:五火:本道料理售价+100%
for (int i = d + 6; i < d + 9; i++) {
if (s.recipe[i]->rarity == 5) {
lenientRule[i]->addRule.buff += 100;
break;
}
}
// 条件:甜:本道料理饱腹感+2
for (int i = d + 6; i < d + 9; i++) {
if (s.recipe[i]->flavor.sweet) {
lenientRule[i]->addRule.full += 2;
break;
}
}
// 条件:切:本道料理饱腹感+2
for (int i = d + 6; i < d + 9; i++) {
if (s.recipe[i]->cookAbility.knife) {
lenientRule[i]->addRule.full += 2;
break;
}
}
return 15;
}

#endif

0 comments on commit a127334

Please sign in to comment.